(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PROGRAM)
          op: assign_op.Equal
          rhs: {<libtool>}
          spids: [227]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:PACKAGE)
          op: assign_op.Equal
          rhs: {<libtool>}
          spids: [230]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:VERSION)
          op: assign_op.Equal
          rhs: {<2.2.7a>}
          spids: [233]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:TIMESTAMP)
          op: assign_op.Equal
          rhs: {(DQ <' 1.3134 2009-11-29'>)}
          spids: [236]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:package_revision)
          op: assign_op.Equal
          rhs: {<1.3134>}
          spids: [241]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.AndOr
                  ops: [Id.Op_DAmp]
                  children: [
                    (C {<test>} {<-n>} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Name ZSH_VERSION>
                            suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<set>})
                          )
                        )
                      }
                    )
                    (command.Subshell
                      child: (C {<emulate>} {<sh>})
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (C {<emulate>} {<sh>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:NULLCMD)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [285]
                )
              ]
            )
            (C {<alias>} {<-g>} {(SQ <'${1+"$@"}'>) <Id.Lit_Equals '='> (SQ <'"$@"'>)})
            (C {<setopt>} {<NO_GLOB_SUBST>})
          ]
          spids: [248 277]
        )
      ]
      else_action: [
        (command.Case
          to_match: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Subshell
                    child: (C {<Id.KW_Set set>} {<-o>})
                    redirects: [
                      (redir
                        op: <Id.Redir_Great '2>'>
                        loc: (redir_loc.Fd fd:2)
                        arg: {<'/dev/null'>}
                      )
                    ]
                  )
              )
            }
          arms: [
            (case_arm
              pat_list: [{<Id.Lit_Star '*'> <posix> <Id.Lit_Star '*'>}]
              action: [(C {<Id.KW_Set set>} {<-o>} {<posix>})]
              spids: [334 337 344 -1]
            )
          ]
        )
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:BIN_SH)
                  op: assign_op.Equal
                  rhs: {<xpg4>}
                  spids: [350]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<BIN_SH>})
      ]
    )
    (command.CommandList
      children: [
        (command.Sentence
          child: 
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:DUALCASE)
                  op: assign_op.Equal
                  rhs: {<1>}
                  spids: [361]
                )
              ]
            )
          terminator: <Id.Op_Semi _>
        )
        (C {<export>} {<DUALCASE>})
      ]
    )
    (command.ShFunction
      name: func_fallback_echo
      body: 
        (BraceGroup
          children: [(C {<eval>} {(SQ <'cat <<_LTECHO_EOF\n'> <'$1\n'> <_LTECHO_EOF>)})]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lt_user_locale)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [407]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lt_safe_locale)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [409]
        )
      ]
    )
    (command.ForEach
      iter_name: lt_var
      iter_words: [{<LANG>} {<LANGUAGE>} {<LC_ALL>} {<LC_CTYPE>} {<LC_COLLATE>} {<LC_MESSAGES>}]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (C {<eval>} 
              {
                (DQ <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$lt_var') <'+set}'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = set; then\n'> <'          save_'> ($ Id.VSub_DollarName '$lt_var') <'='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ 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 '\\"'>) ($ Id.VSub_DollarName '$lt_var') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <save_> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'lt_var; '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_user_locale> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> 
                  <'\t  lt_safe_locale='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$lt_var') <'=C; '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <lt_safe_locale> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\tfi'>
                )
              }
            )
          ]
        )
    )
    (C {($ Id.VSub_DollarName '$lt_unset')} {<CDPATH>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:progpath)
          op: assign_op.Equal
          rhs: {(DQ ($ Id.VSub_Number '$0'))}
          spids: [508]
        )
      ]
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name CP>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'cp -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name ECHO>
          suffix_op: 
            (suffix_op.Unary
              op_id: Id.VTest_Equals
              arg_word: {($ Id.VSub_DollarName '$as_echo')}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name EGREP>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'/bin/grep -E'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name FGREP>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'/bin/grep -F'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name GREP>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'/bin/grep'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name LN_S>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'ln -s'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MAKE>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <make>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MKDIR>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <mkdir>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name MV>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'mv -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name RM>
          suffix_op: (suffix_op.Unary op_id:Id.VTest_Equals arg_word:{(DQ <'rm -f'>)})
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name SED>
          suffix_op: 
            (suffix_op.Unary
              op_id: Id.VTest_Equals
              arg_word: {(DQ <'/mount/endor/wildenhu/local-x86_64/bin/sed'>)}
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name SHELL>
          suffix_op: 
            (suffix_op.Unary
              op_id: Id.VTest_Equals
              arg_word: 
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name CONFIG_SHELL>
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_Hyphen
                          arg_word: {<Id.Lit_Slash '/'> <bin> <Id.Lit_Slash '/'> <sh>}
                        )
                    )
                  )
                }
            )
        )
      }
    )
    (C {<Id.Lit_Colon ':'>} 
      {
        (braced_var_sub
          token: <Id.VSub_Name Xsed>
          suffix_op: 
            (suffix_op.Unary
              op_id: Id.VTest_Equals
              arg_word: {(DQ ($ Id.VSub_DollarName '$SED') <' -e 1s/^X//'>)}
            )
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_SUCCESS)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [656]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_FAILURE)
          op: assign_op.Equal
          rhs: {<1>}
          spids: [659]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_MISMATCH)
          op: assign_op.Equal
          rhs: {<63>}
          spids: [662]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:EXIT_SKIP)
          op: assign_op.Equal
          rhs: {<77>}
          spids: [668]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exit_status)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
          spids: [675]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lt_nl)
          op: assign_op.Equal
          rhs: {(SQ <'\n'>)}
          spids: [682]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IFS)
          op: assign_op.Equal
          rhs: {(DQ <' \t'> ($ Id.VSub_DollarName '$lt_nl'))}
          spids: [687]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:dirname)
          op: assign_op.Equal
          rhs: {(DQ <'s,/[^/]*'> <Id.Lit_Other '$'> <',,'>)}
          spids: [694]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:basename)
          op: assign_op.Equal
          rhs: {(DQ <'s,^.*/,,'>)}
          spids: [701]
        )
      ]
    )
    (command.ShFunction
      name: func_dirname_and_basename
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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 (${ Id.VSub_Number 1))})
                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$dirname'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [755]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:func_dirname_result)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Number 3))}
                          spids: [801]
                        )
                      ]
                    )
                  ]
                  spids: [779 798]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:func_dirname_result)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result') (${ Id.VSub_Number 2))}
                      spids: [812]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name 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 (${ Id.VSub_Number 1))})
                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$basename'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [824]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pathcar)
          op: assign_op.Equal
          rhs: {(SQ <'s,^/\\([^/]*\\).*$,\\1,'>)}
          spids: [857]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:pathcdr)
          op: assign_op.Equal
          rhs: {(SQ <'s,^/[^/]*,,'>)}
          spids: [862]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:removedotparts)
          op: assign_op.Equal
          rhs: {(SQ <':dotsl\n'> <'\t\ts@/\\./@/@g\n'> <'\t\tt dotsl\n'> <'\t\ts,/\\.$,/,'>)}
          spids: [867]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:collapseslashes)
          op: assign_op.Equal
          rhs: {(SQ <'s@/\\{1,\\}@/@g'>)}
          spids: [875]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:finalslash)
          op: assign_op.Equal
          rhs: {(SQ <'s,/*$,/,'>)}
          spids: [880]
        )
      ]
    )
    (command.ShFunction
      name: func_normal_abspath
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [913]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_Number '$1')}
                  spids: [916]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_altnamespace)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [920]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$func_normal_abspath_tpath')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [
                    (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} 
                      {(DQ (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})))}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [957]
                        )
                      ]
                    )
                    (command.ControlFlow token:<Id.ControlFlow_Return return>)
                  ]
                  spids: [930 932 964 -1]
                )
                (case_arm
                  pat_list: [{<'///'> <Id.Lit_Star '*'>}]
                  spids: [979 981 988 -1]
                )
                (case_arm
                  pat_list: [{<'//'> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_altnamespace)
                          op: assign_op.Equal
                          rhs: {<'/'>}
                          spids: [1008]
                        )
                      ]
                    )
                  ]
                  spids: [991 993 1012 -1]
                )
                (case_arm
                  pat_list: [{<'/'> <Id.Lit_Star '*'>}]
                  spids: [1015 1017 1024 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                          op: assign_op.Equal
                          rhs: 
                            {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) <'/'> 
                              ($ Id.VSub_DollarName '$func_normal_abspath_tpath')
                            }
                          spids: [1035]
                        )
                      ]
                    )
                  ]
                  spids: [1027 1028 1045 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                              )
                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                {(DQ ($ Id.VSub_DollarName '$removedotparts'))} {<-e>} {(DQ ($ Id.VSub_DollarName '$collapseslashes'))} {<-e>} {(DQ ($ Id.VSub_DollarName '$finalslash'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [1063]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<test>} {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))} 
                                  {<Id.Lit_Equals '='>} {<'/'>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-z>} 
                                          {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_result'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                                          op: assign_op.Equal
                                          rhs: {<'/'>}
                                          spids: [1150]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1135 1147]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [1114 1128]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tcomponent)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$pathcar'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [1163]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_normal_abspath_tpath)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_tpath'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$pathcdr'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [1190]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$func_normal_abspath_tcomponent')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          spids: [1228 1230 1237 -1]
                        )
                        (case_arm
                          pat_list: [{<..>}]
                          action: [
                            (C {<func_dirname>} 
                              {(DQ ($ Id.VSub_DollarName '$func_normal_abspath_result'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                  spids: [1255]
                                )
                              ]
                            )
                          ]
                          spids: [1240 1241 1259 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                                  op: assign_op.Equal
                                  rhs: 
                                    {($ Id.VSub_DollarName '$func_normal_abspath_result') <'/'> 
                                      ($ Id.VSub_DollarName '$func_normal_abspath_tcomponent')
                                    }
                                  spids: [1270]
                                )
                              ]
                            )
                          ]
                          spids: [1262 1263 1276 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_normal_abspath_result)
                  op: assign_op.Equal
                  rhs: 
                    {($ Id.VSub_DollarName '$func_normal_abspath_altnamespace') 
                      ($ Id.VSub_DollarName '$func_normal_abspath_result')
                    }
                  spids: [1289]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_relative_path
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [1319]
                )
              ]
            )
            (C {<func_normal_abspath>} {(DQ ($ Id.VSub_Number '$1'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_tlibdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_normal_abspath_result')}
                  spids: [1329]
                )
              ]
            )
            (C {<func_normal_abspath>} {(DQ ($ Id.VSub_Number '$2'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_tbindir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_normal_abspath_result')}
                  spids: [1340]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$func_relative_path_tbindir')}
                      arms: [
                        (case_arm
                          pat_list: [{($ Id.VSub_DollarName '$func_relative_path_tlibdir')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [1376]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [1368 1369 1382 -1]
                        )
                        (case_arm
                          pat_list: [
                            {($ Id.VSub_DollarName '$func_relative_path_tlibdir') <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_stripname>} 
                              {(DQ ($ Id.VSub_DollarName '$func_relative_path_tlibdir'))} {(SQ )} {(DQ ($ Id.VSub_DollarName '$func_relative_path_tbindir'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [1408]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-z>} 
                                          {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                          op: assign_op.Equal
                                          rhs: {<.>}
                                          spids: [1426]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [1412 1423]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [1385 1387 1436 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_dirname>} {($ Id.VSub_DollarName '$func_relative_path_tlibdir')})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_tlibdir)
                                  op: assign_op.Equal
                                  rhs: {(${ Id.VSub_Name func_dirname_result)}
                                  spids: [1448]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} 
                                          {
                                            (DQ <x> 
                                              ($ Id.VSub_DollarName '$func_relative_path_tlibdir')
                                            )
                                          } {<Id.Lit_Equals '='>} {<x>}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<'../'> 
                                              ($ Id.VSub_DollarName '$func_relative_path_result')
                                            }
                                          spids: [1476]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_relative_path_tcancelled)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_relative_path_tbindir')}
                                          spids: [1481]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [1454 1469]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                                  op: assign_op.Equal
                                  rhs: {<'../'> ($ Id.VSub_DollarName '$func_relative_path_result')}
                                  spids: [1491]
                                )
                              ]
                            )
                          ]
                          spids: [1439 1440 1496 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} 
              {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))}
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                  spids: [1524]
                )
              ]
            )
            (C {<func_stripname>} {(SQ <'/'>)} {(SQ <'/'>)} 
              {(DQ ($ Id.VSub_DollarName '$func_relative_path_tcancelled'))}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ <x> ($ Id.VSub_DollarName '$func_stripname_result'))} 
                          {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<x>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                          op: assign_op.Equal
                          rhs: 
                            {(${ Id.VSub_Name func_relative_path_result) <'/'> 
                              (${ Id.VSub_Name func_stripname_result)
                            }
                          spids: [1562]
                        )
                      ]
                    )
                  ]
                  spids: [1543 1559]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {<Id.KW_Bang '!'>} {<-z>} 
                          {(DQ ($ Id.VSub_DollarName '$func_relative_path_result'))}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<func_stripname>} {(SQ <'./'>)} {(SQ )} 
                      {(DQ ($ Id.VSub_DollarName '$func_relative_path_result') <'/'>)}
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_relative_path_result)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                          spids: [1619]
                        )
                      ]
                    )
                  ]
                  spids: [1588 1601]
                )
              ]
            )
          ]
        )
    )
    (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName '$progpath'))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:progname)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
          spids: [1637]
        )
      ]
    )
    (command.Case
      to_match: {($ Id.VSub_DollarName '$progpath')}
      arms: [
        (case_arm
          pat_list: [
            {<Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
            }
            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <Id.Lit_Star '*'>
            }
          ]
          spids: [1651 1663 1665 -1]
        )
        (case_arm
          pat_list: [
            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
              (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
            }
          ]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progdir)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                  spids: [1677]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.AndOr
                            ops: [Id.Op_DAmp]
                            children: [(C {<cd>} {(DQ ($ Id.VSub_DollarName '$progdir'))}) (C {<pwd>})]
                          )
                      )
                    }
                  spids: [1681]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progpath)
                  op: assign_op.Equal
                  rhs: 
                    {(DQ ($ Id.VSub_DollarName '$progdir') <'/'> ($ Id.VSub_DollarName '$progname'))}
                  spids: [1697]
                )
              ]
            )
          ]
          spids: [1668 1674 1705 -1]
        )
        (case_arm
          pat_list: [{<Id.Lit_Star '*'>}]
          action: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:save_IFS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                  spids: [1712]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [1718]
                )
              ]
            )
            (command.ForEach
              iter_name: progdir
              iter_words: [{($ Id.VSub_DollarName '$PATH')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$save_IFS'))}
                          spids: [1734]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-x>} 
                          {
                            (DQ ($ Id.VSub_DollarName '$progdir') <'/'> 
                              ($ Id.VSub_DollarName '$progname')
                            )
                          }
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Break break>
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$save_IFS'))}
                  spids: [1758]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$progdir'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:progdir)
                      op: assign_op.Equal
                      rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
                      spids: [1774]
                    )
                  ]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:progpath)
                  op: assign_op.Equal
                  rhs: 
                    {(DQ ($ Id.VSub_DollarName '$progdir') <'/'> ($ Id.VSub_DollarName '$progname'))}
                  spids: [1782]
                )
              ]
            )
          ]
          spids: [1708 1709 1790 -1]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:Xsed)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name SED)) (SQ <' -e 1s/^X//'>)}
          spids: [1801]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s/\\([`"$\\\\]\\)/\\\\\\1/g'>)}
          spids: [1811]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:double_quote_subst)
          op: assign_op.Equal
          rhs: {(SQ <'s/\\(["`\\\\]\\)/\\\\\\1/g'>)}
          spids: [1820]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:bs)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\'>)}
          spids: [1841]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:bs2)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\'>)}
          spids: [1846]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:bs4)
          op: assign_op.Equal
          rhs: {(SQ <'\\\\\\\\\\\\\\\\'>)}
          spids: [1851]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:dollar)
          op: assign_op.Equal
          rhs: {(SQ <'\\$'>)}
          spids: [1856]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:sed_double_backslash)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'  s/'> ($ Id.VSub_DollarName '$bs4') <'/&'> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'\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 '\\\\'>) <'([^'> 
                ($ Id.VSub_DollarName '$bs') <']'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <')'> ($ Id.VSub_DollarName '$bs2') 
                ($ Id.VSub_DollarName '$dollar') <'/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <1> ($ Id.VSub_DollarName '$bs2') 
                ($ Id.VSub_DollarName '$bs') ($ Id.VSub_DollarName '$dollar') <'/g\n'> <'  s/'> <Id.Lit_Other '\\'> <'n//g'>
              )
            }
          spids: [1861]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1901]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_help)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1904]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_quiet)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1907]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_verbose)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [1910]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_warning)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [1913]
        )
      ]
    )
    (command.ShFunction
      name: func_echo
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ ($ Id.VSub_DollarName '$progname') 
                  (braced_var_sub
                    token: <Id.VSub_Name mode>
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<': '>})
                  ) ($ Id.VSub_DollarName '$mode') <': '> ($ Id.VSub_Star '$*')
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: func_verbose
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {($ Id.VSub_DollarName '$opt_verbose')})
                (C {<func_echo>} 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Number 1>
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_Plus
                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                        )
                    )
                  }
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
        )
    )
    (command.ShFunction
      name: func_echo_all
      body: (BraceGroup children:[(C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_Star '$*'))})])
    )
    (command.ShFunction
      name: func_error
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$ECHO')}
                {
                  (DQ ($ Id.VSub_DollarName '$progname') 
                    (braced_var_sub
                      token: <Id.VSub_Name mode>
                      suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<': '>})
                    ) ($ Id.VSub_DollarName '$mode') <': '>
                  ) 
                  (braced_var_sub
                    token: <Id.VSub_Number 1>
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
                  )
                }
              ]
              redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_warning
      body: 
        (BraceGroup
          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
                          token: <Id.VSub_Name mode>
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{<': '>})
                        ) ($ Id.VSub_DollarName '$mode') <': warning: '>
                      ) 
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_Plus
                            arg_word: {(DQ ($ Id.VSub_At '$@'))}
                          )
                      )
                    }
                  ]
                  redirects: [(redir op:<Id.Redir_GreatAnd '1>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})]
                  do_fork: T
                )
              ]
            )
            (C {<Id.Lit_Colon ':'>})
          ]
        )
    )
    (command.ShFunction
      name: func_fatal_error
      body: 
        (BraceGroup
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_fatal_help
      body: 
        (BraceGroup
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
                )
              }
            )
            (C {<func_fatal_error>} {(DQ ($ Id.VSub_DollarName '$help'))})
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:help)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                ($ Id.VSub_DollarName '$progname') <' --help\' for more information.'>
              )
            }
          spids: [2181]
        )
      ]
    )
    (command.ShFunction
      name: func_grep
      body: 
        (BraceGroup
          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>})
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mkdir_p
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_directory_path)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [2242]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_dir_list)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [2248]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:my_directory_path)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'./'> ($ Id.VSub_DollarName '$my_directory_path'))}
                                  spids: [2297]
                                )
                              ]
                            )
                          ]
                          spids: [2293 2295 2303 -1]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (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 name:my_dir_list)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$my_directory_path') <':'> 
                                        ($ Id.VSub_DollarName '$my_dir_list')
                                      )
                                    }
                                  spids: [2338]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$my_directory_path')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <'/'> <Id.Lit_Star '*'>}]
                                  spids: [2357 2360 2362 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [2364 2365 2369 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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 ($ Id.VSub_DollarName '$my_directory_path'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                {(DQ ($ Id.VSub_DollarName '$dirname'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [2379]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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 ($ Id.VSub_DollarName '$my_dir_list'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} {(SQ <'s,:*$,,'>)})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [2404]
                        )
                      ]
                    )
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:save_mkdir_p_IFS)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                              spids: [2425]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {(SQ <':'>)}
                          spids: [2431]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: my_dir
                      iter_words: [{($ Id.VSub_DollarName '$my_dir_list')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_mkdir_p_IFS'))}
                                  spids: [2449]
                                )
                              ]
                            )
                            (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'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                                (C {<Id.Lit_Colon ':'>})
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$save_mkdir_p_IFS'))}
                          spids: [2484]
                        )
                      ]
                    )
                    (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 '\\`'>
                              ) ($ Id.VSub_Number '$1') <'\''>
                            )
                          }
                        )
                      ]
                    )
                  ]
                  spids: [2252 2278]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mktempdir
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_template)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Name TMPDIR>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Hyphen
                              arg_word: {<Id.Lit_Slash '/'> <tmp>}
                            )
                        ) <'/'> 
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Hyphen
                              arg_word: {($ Id.VSub_DollarName '$progname')}
                            )
                        )
                      )
                    }
                  spids: [2543]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:my_tmpdir)
                          op: assign_op.Equal
                          rhs: {(DQ (${ Id.VSub_Name my_template) <-> ($ Id.VSub_Dollar '$$'))}
                          spids: [2583]
                        )
                      ]
                    )
                  ]
                  spids: [2561 2576]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name 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'>}
                                  )
                                ]
                                do_fork: T
                              )
                          )
                        }
                      spids: [2601]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (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 name:my_tmpdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ (${ Id.VSub_Name my_template) <-> 
                                    (braced_var_sub
                                      token: <Id.VSub_Name RANDOM>
                                      suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<0>})
                                    ) ($ Id.VSub_Dollar '$$')
                                  )
                                }
                              spids: [2642]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:save_mktempdir_umask)
                              op: assign_op.Equal
                              rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<umask>}))}
                              spids: [2658]
                            )
                          ]
                        )
                        (C {<umask>} {<0077>})
                        (C {($ Id.VSub_DollarName '$MKDIR')} {(DQ ($ Id.VSub_DollarName '$my_tmpdir'))})
                        (C {<umask>} {($ Id.VSub_DollarName '$save_mktempdir_umask')})
                      ]
                      spids: [2622 2635]
                    )
                  ]
                )
                (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 '\\`'>
                          ) ($ Id.VSub_DollarName '$my_tmpdir') <'\''>
                        )
                      }
                    )
                  ]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$my_tmpdir'))})
          ]
        )
    )
    (command.ShFunction
      name: func_quote_for_eval
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name: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 ($ Id.VSub_Number '$1'))})
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [2771]
                        )
                      ]
                    )
                  ]
                  spids: [2760 2768 2790 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_quote_for_eval_unquoted_result)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                          spids: [2797]
                        )
                      ]
                    )
                  ]
                  spids: [2793 2794 2802 -1]
                )
              ]
            )
            (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 '\\['>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\#'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\&'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\('>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\{'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\|'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\<'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\?'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                    {(DQ )}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_quote_for_eval_result)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                ($ Id.VSub_DollarName '$func_quote_for_eval_unquoted_result') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              )
                            }
                          spids: [2868]
                        )
                      ]
                    )
                  ]
                  spids: [2836 2865 2876 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_quote_for_eval_result)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_unquoted_result'))}
                          spids: [2883]
                        )
                      ]
                    )
                  ]
                  spids: [2879 2880 -1 2889]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_quote_for_expand
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                      ) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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 ($ Id.VSub_Number '$1'))})
                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                        {(DQ ($ Id.VSub_DollarName '$double_quote_subst'))} {<-e>} {(DQ ($ Id.VSub_DollarName '$sed_double_backslash'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [2929]
                        )
                      ]
                    )
                  ]
                  spids: [2919 2926 2961 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_arg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                          spids: [2968]
                        )
                      ]
                    )
                  ]
                  spids: [2964 2965 2973 -1]
                )
              ]
            )
            (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 '\\['>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\~'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\#'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\^'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\&'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\('>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\)'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\{'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\}'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\|'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\;'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\<'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\>'>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\?'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\t'>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_Star '*'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>}
                    {(DQ )}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_arg)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                ($ Id.VSub_DollarName '$my_arg') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                              )
                            }
                          spids: [3035]
                        )
                      ]
                    )
                  ]
                  spids: [3003 3032 3043 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_quote_for_expand_result)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$my_arg'))}
                  spids: [3050]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_show_eval
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [3079]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Number 2>
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<':'>})
                        )
                      )
                    }
                  spids: [3085]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Name opt_silent>
                      suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<false>})
                    )
                  }
                )
                (BraceGroup
                  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'))}
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Name opt_dry_run>
                              suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<false>})
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
                  spids: [3126 3135]
                )
              ]
              else_action: [
                (C {<eval>} {(DQ ($ Id.VSub_DollarName '$my_cmd'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:my_status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '$?')}
                      spids: [3150]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (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: [3154 3167]
                    )
                  ]
                  else_action: [
                    (C {<eval>} 
                      {
                        (DQ <'(exit '> ($ Id.VSub_DollarName '$my_status') <'); '> 
                          ($ Id.VSub_DollarName '$my_fail_exp')
                        )
                      }
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_show_eval_locale
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [3214]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_fail_exp)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Number 2>
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<':'>})
                        )
                      )
                    }
                  spids: [3220]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Name opt_silent>
                      suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<false>})
                    )
                  }
                )
                (BraceGroup
                  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'))}
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Name opt_dry_run>
                              suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<false>})
                            )
                          }
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)]
                  spids: [3261 3270]
                )
              ]
              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 name:my_status)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_QMark '$?')}
                      spids: [3288]
                    )
                  ]
                )
                (C {<eval>} {(DQ ($ Id.VSub_DollarName '$lt_safe_locale'))})
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (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: [3299 3312]
                    )
                  ]
                  else_action: [
                    (C {<eval>} 
                      {
                        (DQ <'(exit '> ($ Id.VSub_DollarName '$my_status') <'); '> 
                          ($ Id.VSub_DollarName '$my_fail_exp')
                        )
                      }
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_version
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$SED')}
                {<-n>}
                {
                  (SQ <'/(C)/!b go\n'> <'\t:more\n'> <'\t/\\./!{\n'> <'\t  N\n'> <'\t  s/\\n# //\n'> 
                    <'\t  b more\n'> <'\t}\n'> <'\t:go\n'> <'\t/^# '>
                  ) ($ 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'))}
                )
              ]
              do_fork: T
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_usage
      body: 
        (BraceGroup
          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'))}
                )
              ]
              do_fork: T
            )
            (C {<echo>})
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'run '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  ($ Id.VSub_DollarName '$progname') <' --help | more\' for full usage'>
                )
              }
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_help
      body: 
        (BraceGroup
          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
                        )
                    )
                  ) (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
                        )
                    )
                  ) (SQ <'/\n'> <'\tp\n'> <'     }'>)
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                )
              ]
              do_fork: T
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ret)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_QMark '$?')}
                  spids: [3582]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_Number '$1'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$ret')}
                    )
                  ]
                  spids: [3586 3597]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_missing_arg
      body: 
        (BraceGroup
          children: [
            (C {<func_error>} {(DQ <'missing argument for '> ($ Id.VSub_Number '$1'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:exit_cmd)
                  op: assign_op.Equal
                  rhs: {<Id.ControlFlow_Exit exit>}
                  spids: [3635]
                )
              ]
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exit_cmd)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [3641]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:magic)
          op: assign_op.Equal
          rhs: {(DQ <'%%%MAGIC variable%%%'>)}
          spids: [3650]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:magic_exe)
          op: assign_op.Equal
          rhs: {(DQ <'%%%MAGIC EXE variable%%%'>)}
          spids: [3655]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:nonopt)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3667]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:execute_dlfiles)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3669]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:preserve_args)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3671]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:lo2o)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <.lo> 
                (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/.'> (${ Id.VSub_Name objext) <'/'>
              )
            }
          spids: [3673]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:o2lo)
          op: assign_op.Equal
          rhs: 
            {
              (DQ <'s/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <.> 
                (${ Id.VSub_Name objext) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/.lo/'>
              )
            }
          spids: [3686]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:extracted_archives)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3698]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:extracted_serial)
          op: assign_op.Equal
          rhs: {<0>}
          spids: [3700]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_dry_run)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3704]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_finish)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [3707]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_duplicate_deps)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3710]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_silent)
          op: assign_op.Equal
          rhs: {<false>}
          spids: [3713]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:opt_debug)
          op: assign_op.Equal
          rhs: {<Id.Lit_Colon ':'>}
          spids: [3716]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:exec_cmd)
          op: assign_op.Equal
          rhs: (word.Empty)
          spids: [3729]
        )
      ]
    )
    (command.ShFunction
      name: func_fatal_configuration
      body: 
        (BraceGroup
          children: [
            (C {<func_error>} 
              {
                (braced_var_sub
                  token: <Id.VSub_Number 1>
                  suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
                )
              }
            )
            (C {<func_error>} 
              {
                (DQ <'See the '> ($ Id.VSub_DollarName '$PACKAGE') 
                  <' documentation for more information.'>
                )
              }
            )
            (C {<func_fatal_error>} {(DQ <'Fatal configuration error.'>)})
          ]
        )
    )
    (command.ShFunction
      name: func_config
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_begincf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### BEGIN LIBTOOL'>)}
                  spids: [3793]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_endcf)
                  op: assign_op.Equal
                  rhs: {(SQ <'^# ### END LIBTOOL'>)}
                  spids: [3799]
                )
              ]
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$SED')}
                {
                  (DQ <'1,/'> ($ Id.VSub_DollarName '$re_begincf') <' CONFIG/d;/'> 
                    ($ Id.VSub_DollarName '$re_endcf') <' CONFIG/,'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <d>
                  )
                }
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Less '<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                )
              ]
              do_fork: T
            )
            (command.ForEach
              iter_name: tagname
              iter_words: [{($ Id.VSub_DollarName '$taglist')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Simple
                      words: [
                        {($ Id.VSub_DollarName '$SED')}
                        {<-n>}
                        {
                          (DQ <'/'> ($ Id.VSub_DollarName '$re_begincf') <' TAG CONFIG: '> 
                            ($ Id.VSub_DollarName '$tagname') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/,/'> ($ Id.VSub_DollarName '$re_endcf') 
                            <' TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'/p'>
                          )
                        }
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Less '<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                )
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_features
      body: 
        (BraceGroup
          children: [
            (C {<echo>} {(DQ <'host: '> ($ Id.VSub_DollarName '$host'))})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$build_libtool_libs'))} 
                          {<Id.Lit_Equals '='>} {<yes>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<echo>} {(DQ <'enable shared libraries'>)})]
                  spids: [3904 3917]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'disable shared libraries'>)})]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$build_old_libs'))} 
                          {<Id.Lit_Equals '='>} {<yes>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<echo>} {(DQ <'enable static libraries'>)})]
                  spids: [3940 3953]
                )
              ]
              else_action: [(C {<echo>} {(DQ <'disable static libraries'>)})]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: func_enable_tag
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:tagname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [4008]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_begincf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                      )
                    }
                  spids: [4015]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:re_endcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'^# ### END LIBTOOL TAG CONFIG: '> ($ Id.VSub_DollarName '$tagname') 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        )
                      )
                    }
                  spids: [4023]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:sed_extractcf)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'/'> ($ Id.VSub_DollarName '$re_begincf') <'/,/'> 
                        ($ Id.VSub_DollarName '$re_endcf') <'/p'>
                      )
                    }
                  spids: [4031]
                )
              ]
            )
            (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: [4053 4061 4072 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$tagname')}
              arms: [
                (case_arm pat_list:[{<CC>}] spids:[4094 4095 4097 -1])
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Simple
                                  words: [
                                    {($ Id.VSub_DollarName '$GREP')}
                                    {(DQ ($ Id.VSub_DollarName '$re_begincf'))}
                                    {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                    (redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:taglist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$taglist') <' '> 
                                        ($ Id.VSub_DollarName '$tagname')
                                      )
                                    }
                                  spids: [4126]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:extractedcf)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Simple
                                            words: [
                                              {($ Id.VSub_DollarName '$SED')}
                                              {<-n>}
                                              {<-e>}
                                              {(DQ ($ Id.VSub_DollarName '$sed_extractcf'))}
                                            ]
                                            redirects: [
                                              (redir
                                                op: <Id.Redir_Less '<'>
                                                loc: (redir_loc.Fd fd:0)
                                                arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                              )
                                            ]
                                            do_fork: T
                                          )
                                      )
                                    }
                                  spids: [4151]
                                )
                              ]
                            )
                            (C {<eval>} {(DQ ($ Id.VSub_DollarName '$extractedcf'))})
                          ]
                          spids: [4104 4123]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'ignoring unknown tag '> ($ Id.VSub_DollarName '$tagname'))}
                        )
                      ]
                    )
                  ]
                  spids: [4100 4101 4194 -1]
                )
              ]
            )
          ]
        )
    )
    (BraceGroup
      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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<clean>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4223 4230 4256 -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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<compile>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4259 4272 4298 -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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<execute>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4301 4314 4340 -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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<finish>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4343 4354 4380 -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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<install>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4383 4396 4422 -1]
            )
            (case_arm
              pat_list: [{<link>} {<lin>} {<li>} {<l>}]
              action: [
                (command.Sentence child:(C {<shift>}) terminator:<Id.Op_Semi _>)
                (command.Sentence
                  child: 
                    (C {<Id.KW_Set set>} {<dummy>} {<--mode>} {<link>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4425 4432 4458 -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 {<Id.KW_Set set>} {<dummy>} {<--mode>} {<uninstall>} 
                      {
                        (braced_var_sub
                          token: <Id.VSub_Number 1>
                          suffix_op: 
                            (suffix_op.Unary
                              op_id: Id.VTest_Plus
                              arg_word: {(DQ ($ Id.VSub_At '$@'))}
                            )
                        )
                      }
                    )
                  terminator: <Id.Op_Semi _>
                )
                (C {<shift>})
              ]
              spids: [4461 4478 4504 -1]
            )
          ]
        )
        (command.WhileUntil
          keyword: <Id.KW_While while>
          cond: [
            (command.Sentence
              child: (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} {<0>})
              terminator: <Id.Op_Semi _>
            )
          ]
          body: 
            (command.DoGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:opt)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                      spids: [4531]
                    )
                  ]
                )
                (C {<shift>})
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$opt')}
                  arms: [
                    (case_arm
                      pat_list: [{<--config>}]
                      action: [(C {<func_config>})]
                      spids: [4548 4549 4553 -1]
                    )
                    (case_arm
                      pat_list: [{<--debug>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt')
                                  )
                                }
                              spids: [4560]
                            )
                          ]
                        )
                        (C {<func_echo>} {(DQ <'enabling shell trace mode'>)})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_debug)
                              op: assign_op.Equal
                              rhs: {(SQ <'set -x'>)}
                              spids: [4575]
                            )
                          ]
                        )
                        (C {($ Id.VSub_DollarName '$opt_debug')})
                      ]
                      spids: [4557 4558 4584 -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 name:execute_dlfiles)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$execute_dlfiles') <' '> 
                                    ($ Id.VSub_Number '$1')
                                  )
                                }
                              spids: [4614]
                            )
                          ]
                        )
                        (C {<shift>})
                      ]
                      spids: [4588 4589 4625 -1]
                    )
                    (case_arm
                      pat_list: [{<--dry-run>} {<-n>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_dry_run)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4636]
                            )
                          ]
                        )
                      ]
                      spids: [4629 4634 4639 -1]
                    )
                    (case_arm
                      pat_list: [{<--features>}]
                      action: [(C {<func_features>})]
                      spids: [4642 4643 4647 -1]
                    )
                    (case_arm
                      pat_list: [{<--finish>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:mode)
                              op: assign_op.Equal
                              rhs: {(DQ <finish>)}
                              spids: [4653]
                            )
                          ]
                        )
                      ]
                      spids: [4650 4651 4658 -1]
                    )
                    (case_arm
                      pat_list: [{<--no-finish>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_finish)
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4664]
                            )
                          ]
                        )
                      ]
                      spids: [4661 4662 4667 -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>}]
                              spids: [4708 4709 4711 -1]
                            )
                            (case_arm
                              pat_list: [{<compile>}]
                              spids: [4714 4715 4717 -1]
                            )
                            (case_arm
                              pat_list: [{<execute>}]
                              spids: [4720 4721 4723 -1]
                            )
                            (case_arm
                              pat_list: [{<finish>}]
                              spids: [4726 4727 4729 -1]
                            )
                            (case_arm
                              pat_list: [{<install>}]
                              spids: [4732 4733 4735 -1]
                            )
                            (case_arm
                              pat_list: [{<link>}]
                              spids: [4738 4739 4741 -1]
                            )
                            (case_arm
                              pat_list: [{<relink>}]
                              spids: [4744 4745 4747 -1]
                            )
                            (case_arm
                              pat_list: [{<uninstall>}]
                              spids: [4750 4751 4753 -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 name:exit_cmd)
                                      op: assign_op.Equal
                                      rhs: {<Id.ControlFlow_Exit exit>}
                                      spids: [4772]
                                    )
                                  ]
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Break break>
                                )
                              ]
                              spids: [4761 4762 4779 -1]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:mode)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_Number '$1'))}
                              spids: [4786]
                            )
                          ]
                        )
                        (C {<shift>})
                      ]
                      spids: [4671 4672 4795 -1]
                    )
                    (case_arm
                      pat_list: [{<--preserve-dup-deps>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_duplicate_deps)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4803]
                            )
                          ]
                        )
                      ]
                      spids: [4799 4800 4806 -1]
                    )
                    (case_arm
                      pat_list: [{<--quiet>} {<--silent>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt')
                                  )
                                }
                              spids: [4815]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_silent)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4823]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_verbose)
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4827]
                            )
                          ]
                        )
                      ]
                      spids: [4810 4813 4831 -1]
                    )
                    (case_arm
                      pat_list: [{<--no-quiet>} {<--no-silent>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt')
                                  )
                                }
                              spids: [4841]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_silent)
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4849]
                            )
                          ]
                        )
                      ]
                      spids: [4835 4838 4853 -1]
                    )
                    (case_arm
                      pat_list: [{<--verbose>} {<-v>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt')
                                  )
                                }
                              spids: [4863]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_silent)
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4871]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_verbose)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [4875]
                            )
                          ]
                        )
                      ]
                      spids: [4857 4861 4879 -1]
                    )
                    (case_arm
                      pat_list: [{<--no-verbose>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt')
                                  )
                                }
                              spids: [4886]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_verbose)
                              op: assign_op.Equal
                              rhs: {<false>}
                              spids: [4894]
                            )
                          ]
                        )
                      ]
                      spids: [4883 4884 4898 -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 name:preserve_args)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$preserve_args') <' '> 
                                    ($ Id.VSub_DollarName '$opt') <' '> ($ Id.VSub_Number '$1')
                                  )
                                }
                              spids: [4928]
                            )
                          ]
                        )
                        (C {<func_enable_tag>} {(DQ ($ Id.VSub_Number '$1'))})
                        (C {<shift>})
                      ]
                      spids: [4902 4903 4951 -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 {<Id.KW_Set set>} {<dummy>} 
                          {(DQ ($ Id.VSub_DollarName '$func_opt_split_opt'))} {(DQ ($ Id.VSub_DollarName '$func_opt_split_arg'))} 
                          {
                            (braced_var_sub
                              token: <Id.VSub_Number 1>
                              suffix_op: 
                                (suffix_op.Unary
                                  op_id: Id.VTest_Plus
                                  arg_word: {(DQ ($ Id.VSub_At '$@'))}
                                )
                            )
                          }
                        )
                        (C {<shift>})
                      ]
                      spids: [4959 4970 5004 -1]
                    )
                    (case_arm
                      pat_list: [
                        {<-> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}
                        {<-h>}
                      ]
                      action: [(C {<func_usage>})]
                      spids: [5008 5012 5016 -1]
                    )
                    (case_arm
                      pat_list: [{<--help>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_help)
                              op: assign_op.Equal
                              rhs: {<Id.Lit_Colon ':'>}
                              spids: [5022]
                            )
                          ]
                        )
                      ]
                      spids: [5019 5020 5025 -1]
                    )
                    (case_arm
                      pat_list: [{<--help-all>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:opt_help)
                              op: assign_op.Equal
                              rhs: {(SQ <': help-all'>)}
                              spids: [5031]
                            )
                          ]
                        )
                      ]
                      spids: [5028 5029 5036 -1]
                    )
                    (case_arm
                      pat_list: [{<--version>}]
                      action: [(C {<func_version>})]
                      spids: [5039 5040 5044 -1]
                    )
                    (case_arm
                      pat_list: [{<-> <Id.Lit_Star '*'>}]
                      action: [
                        (C {<func_fatal_help>} 
                          {
                            (DQ <'unrecognized option '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\`'>
                              ) ($ Id.VSub_DollarName '$opt') <'\''>
                            )
                          }
                        )
                      ]
                      spids: [5048 5050 5061 -1]
                    )
                    (case_arm
                      pat_list: [{<Id.Lit_Star '*'>}]
                      action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:nonopt)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$opt'))}
                              spids: [5068]
                            )
                          ]
                        )
                        (command.ControlFlow
                          token: <Id.ControlFlow_Break break>
                        )
                      ]
                      spids: [5065 5066 5077 -1]
                    )
                  ]
                )
              ]
            )
        )
        (command.Case
          to_match: {($ Id.VSub_DollarName '$host')}
          arms: [
            (case_arm
              pat_list: [
                {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> <pw32> <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                {<Id.Lit_Star '*'> <solaris2> <Id.Lit_Star '*'>}
              ]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:opt_duplicate_compiler_generated_deps)
                      op: assign_op.Equal
                      rhs: {<Id.Lit_Colon ':'>}
                      spids: [5130]
                    )
                  ]
                )
              ]
              spids: [5095 5123 5134 -1]
            )
            (case_arm
              pat_list: [{<Id.Lit_Star '*'>}]
              action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:opt_duplicate_compiler_generated_deps)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$opt_duplicate_deps')}
                      spids: [5141]
                    )
                  ]
                )
              ]
              spids: [5137 5138 5145 -1]
            )
          ]
        )
        (C {($ Id.VSub_DollarName '$exit_cmd')} {($ Id.VSub_DollarName '$EXIT_FAILURE')})
      ]
    )
    (command.ShFunction
      name: func_check_version_match
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [
                            (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: [
                                    (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.MultiLine
                                              here_begin: {<_LT_EOF>}
                                              here_end_span_id: 5261
                                              stdin_parts: [
                                                ($ Id.VSub_DollarName '$progname')
                                                <': Version mismatch error.  This is '>
                                                ($ Id.VSub_DollarName '$PACKAGE')
                                                <' '>
                                                ($ Id.VSub_DollarName '$VERSION')
                                                <', but the\n'>
                                                ($ Id.VSub_DollarName '$progname')
                                                <
': definition of this LT_INIT comes from an older release.\n'
                                                >
                                                ($ Id.VSub_DollarName '$progname')
                                                <
': You should recreate aclocal.m4 with macros from '
                                                >
                                                ($ Id.VSub_DollarName '$PACKAGE')
                                                <' '>
                                                ($ Id.VSub_DollarName '$VERSION')
                                                <'\n'>
                                                ($ Id.VSub_DollarName '$progname')
                                                <': and run autoconf again.\n'>
                                              ]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  spids: [5222 5233]
                                )
                              ]
                              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.MultiLine
                                          here_begin: {<_LT_EOF>}
                                          here_end_span_id: 5295
                                          stdin_parts: [
                                            ($ Id.VSub_DollarName '$progname')
                                            <': Version mismatch error.  This is '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$VERSION')
                                            <', but the\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': definition of this LT_INIT comes from '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$macro_version')
                                            <'.\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': You should recreate aclocal.m4 with macros from '>
                                            ($ Id.VSub_DollarName '$PACKAGE')
                                            <' '>
                                            ($ Id.VSub_DollarName '$VERSION')
                                            <'\n'>
                                            ($ Id.VSub_DollarName '$progname')
                                            <': and run autoconf again.\n'>
                                          ]
                                        )
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          ]
                          spids: [5203 5219]
                        )
                      ]
                      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.MultiLine
                                  here_begin: {<_LT_EOF>}
                                  here_end_span_id: 5334
                                  stdin_parts: [
                                    ($ Id.VSub_DollarName '$progname')
                                    <': Version mismatch error.  This is '>
                                    ($ Id.VSub_DollarName '$PACKAGE')
                                    <' '>
                                    ($ Id.VSub_DollarName '$VERSION')
                                    <', revision '>
                                    ($ Id.VSub_DollarName '$package_revision')
                                    <',\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': but the definition of this LT_INIT comes from revision '>
                                    ($ Id.VSub_DollarName '$macro_revision')
                                    <'.\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': You should recreate aclocal.m4 with macros from revision '>
                                    ($ Id.VSub_DollarName '$package_revision')
                                    <'\n'>
                                    ($ Id.VSub_DollarName '$progname')
                                    <': of '>
                                    ($ Id.VSub_DollarName '$PACKAGE')
                                    <' '>
                                    ($ Id.VSub_DollarName '$VERSION')
                                    <' and run autoconf again.\n'>
                                  ]
                                )
                            )
                          ]
                          do_fork: T
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_MISMATCH')}
                    )
                  ]
                  spids: [5184 5200]
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {($ Id.VSub_DollarName '$opt_help')})
        (BraceGroup
          children: [
            (C {<func_check_version_match>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [5376 5403]
                )
              ]
            )
            (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>} 
              {
                (DQ <'std_shrext='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 '\\`'>
                          ) <'-dlopen\''>
                        )
                      }
                    )
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$help'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_GreatAnd '1>&'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<2>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_FAILURE')}
                    )
                  ]
                  spids: [5456 5480]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:generic_help)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$help'))}
                  spids: [5515]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:help)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                        ($ Id.VSub_DollarName '$progname') <' --help --mode='> ($ Id.VSub_DollarName '$mode') <'\' for more information.'>
                      )
                    }
                  spids: [5521]
                )
              ]
            )
          ]
        )
      ]
    )
    (command.ShFunction
      name: func_lalib_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$SED')} {<-e>} {<4q>} {(DQ ($ Id.VSub_Number '$1'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '2>'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<'/dev/null'>}
                        )
                      ]
                      do_fork: T
                    )
                    (command.Simple
                      words: [
                        {($ Id.VSub_DollarName '$GREP')}
                        {(DQ <'^# Generated by .*'> ($ Id.VSub_DollarName '$PACKAGE'))}
                      ]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {<'/dev/null'>}
                        )
                        (redir
                          op: <Id.Redir_GreatAnd '2>&'>
                          loc: (redir_loc.Fd fd:2)
                          arg: {<1>}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  negated: F
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_lalib_unsafe_p
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lalib_p)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [5629]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-f>} {(DQ ($ Id.VSub_Number '$1'))})
                            (C {<test>} {<-r>} {(DQ ($ Id.VSub_Number '$1'))})
                            (command.Simple
                              words: [{<exec>}]
                              redirects: [
                                (redir
                                  op: <Id.Redir_LessAnd '5<&'>
                                  loc: (redir_loc.Fd fd:5)
                                  arg: {<0>}
                                )
                                (redir
                                  op: <Id.Redir_Less '<'>
                                  loc: (redir_loc.Fd fd:0)
                                  arg: {(DQ ($ Id.VSub_Number '$1'))}
                                )
                              ]
                              do_fork: T
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForEach
                      iter_name: lalib_p_l
                      iter_words: [{<1>} {<2>} {<3>} {<4>}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<read>} {<lalib_p_line>})
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$lalib_p_line'))}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\#'>) 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                      ) <Generated> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <by> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\ '>
                                      ) <Id.Lit_Star '*'> ($ Id.VSub_DollarName '$PACKAGE') <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:lalib_p)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [5713]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Break break>
                                    )
                                  ]
                                  spids: [5701 5711 5718 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.Simple
                      words: [{<exec>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_LessAnd '0<&'>
                          loc: (redir_loc.Fd fd:0)
                          arg: {<5>}
                        )
                        (redir
                          op: <Id.Redir_LessAnd '5<&'>
                          loc: (redir_loc.Fd fd:5)
                          arg: {<->}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [5633 5666]
                )
              ]
            )
            (C {<test>} {(DQ ($ Id.VSub_DollarName '$lalib_p'))} {<Id.Lit_Equals '='>} {<yes>})
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_script_p
      body: (BraceGroup children:[(C {<func_lalib_p>} {(DQ ($ Id.VSub_Number '$1'))})])
    )
    (command.ShFunction
      name: func_ltwrapper_executable_p
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_ltwrapper_exec_suffix)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [5801]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_Number '$1')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                  spids: [5811 5813 5815 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:func_ltwrapper_exec_suffix)
                          op: assign_op.Equal
                          rhs: {<.exe>}
                          spids: [5821]
                        )
                      ]
                    )
                  ]
                  spids: [5818 5819 5824 -1]
                )
              ]
            )
            (command.Simple
              words: [
                {($ Id.VSub_DollarName '$GREP')}
                {(DQ ($ Id.VSub_DollarName '$magic_exe'))}
                {(DQ ($ Id.VSub_Number '$1') ($ Id.VSub_DollarName '$func_ltwrapper_exec_suffix'))}
              ]
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {<'/dev/null'>}
                )
                (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<1>})
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_scriptname
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_ltwrapper_scriptname_result)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [5870]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 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: [5915]
                        )
                      ]
                    )
                  ]
                  spids: [5875 5884]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_ltwrapper_p
      body: 
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {<func_ltwrapper_script_p>} {(DQ ($ Id.VSub_Number '$1'))})
                (C {<func_ltwrapper_executable_p>} {(DQ ($ Id.VSub_Number '$1'))})
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_execute_cmds
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:save_ifs)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$IFS')}
                      spids: [5994]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {(SQ <'~'>)}
                  spids: [5998]
                )
              ]
            )
            (command.ForEach
              iter_name: cmd
              iter_words: [{($ Id.VSub_Number '$1')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:IFS)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$save_ifs')}
                          spids: [6016]
                        )
                      ]
                    )
                    (C {<eval>} 
                      {
                        (DQ <'cmd='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          ($ Id.VSub_DollarName '$cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                    (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))} 
                      {
                        (DQ 
                          (braced_var_sub
                            token: <Id.VSub_Number 2>
                            suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<':'>})
                          )
                        )
                      }
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:IFS)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$save_ifs')}
                  spids: [6048]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_source
      body: 
        (BraceGroup
          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 '\\\\'>) 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  action: [(C {<.>} {(DQ ($ Id.VSub_Number '$1'))})]
                  spids: [6091 6100 6108 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<.>} {(DQ <'./'> ($ Id.VSub_Number '$1'))})]
                  spids: [6111 6112 6121 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_infer_tag
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$available_tags'))})
                            (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$tagname'))})
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_quoted)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [6183]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: arg
                      iter_words: [{($ Id.VSub_DollarName '$CC')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:CC_quoted)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$CC_quoted') <' '> 
                                        ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                      )
                                    }
                                  spids: [6205]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_expanded)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<func_echo_all>} {($ Id.VSub_DollarName '$CC')})
                              )
                            }
                          spids: [6216]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:CC_quoted_expanded)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: (C {<func_echo_all>} {($ Id.VSub_DollarName '$CC_quoted')})
                              )
                            }
                          spids: [6226]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_At '$@')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC') <' '>) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_expanded') <' '>) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC_expanded') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted')) <Id.Lit_Star '*'>}
                            {(DQ ($ Id.VSub_DollarName '$CC_quoted') <' '>) <Id.Lit_Star '*'>}
                            {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>) 
                              <Id.Lit_Star '*'>
                            }
                            {(DQ ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>) 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          spids: [6251 6317 6319 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ForEach
                              iter_name: z
                              iter_words: [{($ Id.VSub_DollarName '$available_tags')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName '$GREP')}
                                                    {
                                                      (DQ <'^# ### BEGIN LIBTOOL TAG CONFIG: '> 
                                                        ($ Id.VSub_DollarName '$z') <Id.Lit_Other '$'>
                                                      )
                                                    }
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                                    )
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: {<'/dev/null'>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<eval>} 
                                              {
                                                (DQ 
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Simple
                                                        words: [
                                                          {(${ Id.VSub_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')}
                                                          )
                                                        ]
                                                        do_fork: T
                                                      )
                                                  )
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_quoted)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [6407]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: arg
                                              iter_words: [{($ Id.VSub_DollarName '$CC')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_quote_for_eval>} 
                                                      {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:CC_quoted)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$CC_quoted') 
                                                                <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                                              )
                                                            }
                                                          spids: [6433]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_expanded)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<func_echo_all>} 
                                                            {($ Id.VSub_DollarName '$CC')}
                                                          )
                                                      )
                                                    }
                                                  spids: [6444]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:CC_quoted_expanded)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (C {<func_echo_all>} 
                                                            {($ Id.VSub_DollarName '$CC_quoted')}
                                                          )
                                                      )
                                                    }
                                                  spids: [6454]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_At '$@') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {(DQ <' '> ($ Id.VSub_DollarName '$CC') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName '$CC_expanded') 
                                                        <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC_expanded') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ <' '> ($ Id.VSub_DollarName '$CC_quoted')) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {(DQ ($ Id.VSub_DollarName '$CC_quoted') <' '>) 
                                                      <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$CC_quoted_expanded') <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tagname)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$z')}
                                                          spids: [6555]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [6474 6540 6562 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [6346 6367]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                          ) <'--tag\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [6586 6597]
                                )
                              ]
                            )
                          ]
                          spids: [6330 6331 6625 -1]
                        )
                      ]
                    )
                  ]
                  spids: [6159 6180]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_write_libtool_object
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:write_libobj)
                  op: assign_op.Equal
                  rhs: {(${ Id.VSub_Number 1)}
                  spids: [6655]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:write_lobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                              (${ Id.VSub_Number 2) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)
                            }
                          spids: [6677]
                        )
                      ]
                    )
                  ]
                  spids: [6661 6674]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:write_lobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [6688]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:write_oldobj)
                          op: assign_op.Equal
                          rhs: 
                            {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                              (${ Id.VSub_Number 3) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>)
                            }
                          spids: [6712]
                        )
                      ]
                    )
                  ]
                  spids: [6696 6709]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:write_oldobj)
                      op: assign_op.Equal
                      rhs: {<none>}
                      spids: [6723]
                    )
                  ]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(${ Id.VSub_Name write_libobj) <T>}
                        )
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.MultiLine
                              here_begin: {<EOF>}
                              here_end_span_id: 6775
                              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'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                    (C {($ Id.VSub_DollarName '$MV')} {(DQ (${ Id.VSub_Name write_libobj) <T>)} 
                      {(DQ (${ Id.VSub_Name write_libobj))}
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mode_compile
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:base_compile)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [6816]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:srcfile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                  spids: [6819]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:suppress_opt)
                  op: assign_op.Equal
                  rhs: {<yes>}
                  spids: [6828]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:suppress_output)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [6832]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:arg_mode)
                  op: assign_op.Equal
                  rhs: {<normal>}
                  spids: [6835]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobj)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [6839]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:later)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [6842]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:pie_flag)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [6845]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg_mode')}
                      arms: [
                        (case_arm
                          pat_list: [{<arg>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lastarg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                  spids: [6873]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg_mode)
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [6879]
                                )
                              ]
                            )
                          ]
                          spids: [6864 6866 6883 -1]
                        )
                        (case_arm
                          pat_list: [{<target>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                  spids: [6892]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg_mode)
                                  op: assign_op.Equal
                                  rhs: {<normal>}
                                  spids: [6898]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [6887 6889 6905 -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 '\\`'>
                                              ) <'-o\' more than once'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg_mode)
                                          op: assign_op.Equal
                                          rhs: {<target>}
                                          spids: [6950]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6925 6926 6957 -1]
                                )
                                (case_arm
                                  pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:pie_flag)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$pie_flag') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [6973]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6961 6970 6984 -1]
                                )
                                (case_arm
                                  pat_list: [{<-shared>} {<-static>} {<-prefer-pic>} {<-prefer-non-pic>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:later)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$later') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [7004]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [6988 7001 7015 -1]
                                )
                                (case_arm
                                  pat_list: [{<-no-suppress>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:suppress_opt)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [7023]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [7019 7020 7030 -1]
                                )
                                (case_arm
                                  pat_list: [{<-Xcompiler>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg_mode)
                                          op: assign_op.Equal
                                          rhs: {<arg>}
                                          spids: [7038]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [7034 7035 7051 -1]
                                )
                                (case_arm
                                  pat_list: [{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_stripname>} {(SQ <'-Wc,'>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$arg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:args)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [7078]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [7082]
                                        )
                                      ]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_ifs)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                              spids: [7085]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(SQ <','>)}
                                          spids: [7091]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: arg
                                      iter_words: [{($ Id.VSub_DollarName '$args')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                                  spids: [7109]
                                                )
                                              ]
                                            )
                                            (C {<func_quote_for_eval>} 
                                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lastarg)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$lastarg') <' '> 
                                                        ($ Id.VSub_DollarName 
'$func_quote_for_eval_result'
                                                        )
                                                      )
                                                    }
                                                  spids: [7122]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                          spids: [7133]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$lastarg'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [7153]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:base_compile)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                                ($ Id.VSub_DollarName '$lastarg')
                                              )
                                            }
                                          spids: [7162]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [7058 7061 7173 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lastarg)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$srcfile'))}
                                          spids: [7193]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:srcfile)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [7199]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [7177 7178 7205 -1]
                                )
                              ]
                            )
                          ]
                          spids: [6909 6911 7214 -1]
                        )
                      ]
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$lastarg'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:base_compile)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                              )
                            }
                          spids: [7235]
                        )
                      ]
                    )
                  ]
                )
            )
            (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: [7257 7258 7268 -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 '\\`'>
                          ) <'-o\''>
                        )
                      }
                    )
                  ]
                  spids: [7271 7272 7284 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                        (BraceGroup
                          children: [
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$srcfile'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                  spids: [7315]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [7287 7288 7324 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$libobj')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <cCFSifmso> <Id.Lit_RBracket ']'>}
                    {<Id.Lit_Star '*'> <.ada>}
                    {<Id.Lit_Star '*'> <.adb>}
                    {<Id.Lit_Star '*'> <.ads>}
                    {<Id.Lit_Star '*'> <.asm>}
                    {<Id.Lit_Star '*'> <.c> <Id.Lit_Other '+'> <Id.Lit_Other '+'>}
                    {<Id.Lit_Star '*'> <.cc>}
                    {<Id.Lit_Star '*'> <.ii>}
                    {<Id.Lit_Star '*'> <.class>}
                    {<Id.Lit_Star '*'> <.cpp>}
                    {<Id.Lit_Star '*'> <.cxx>}
                    {<Id.Lit_Star '*'> <.> <Id.Lit_LBracket '['> <fF> <Id.Lit_RBracket ']'> 
                      <Id.Lit_LBracket '['> <09> <Id.Lit_RBracket ']'> <Id.Lit_QMark '?'>
                    }
                    {<Id.Lit_Star '*'> <.for>}
                    {<Id.Lit_Star '*'> <.java>}
                    {<Id.Lit_Star '*'> <.obj>}
                    {<Id.Lit_Star '*'> <.sx>}
                    {<Id.Lit_Star '*'> <.cu>}
                    {<Id.Lit_Star '*'> <.cup>}
                  ]
                  action: [
                    (C {<func_xform>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:libobj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_xform_result')}
                          spids: [7461]
                        )
                      ]
                    )
                  ]
                  spids: [7346 7451 7465 -1]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$libobj')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                  action: [
                    (command.Sentence
                      child: (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                      terminator: <Id.Op_Semi _>
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:obj)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                          spids: [7490]
                        )
                      ]
                    )
                  ]
                  spids: [7479 7481 7493 -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 '\\`'>
                          ) ($ Id.VSub_DollarName '$libobj') <'\''>
                        )
                      }
                    )
                  ]
                  spids: [7496 7497 7510 -1]
                )
              ]
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName '$base_compile')})
            (command.ForEach
              iter_name: arg
              iter_words: [{($ Id.VSub_DollarName '$later')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_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 name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [7568]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [7542 7543 7575 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [7583]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [7587]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [7579 7580 7594 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_mode)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [7602]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [7598 7599 7609 -1]
                        )
                        (case_arm
                          pat_list: [{<-prefer-non-pic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_mode)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [7617]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [7613 7614 7624 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
            (command.AndOr
              ops: [Id.Op_DAmp Id.Op_DAmp]
              children: [
                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobj'))} 
                  {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                )
                (command.Pipeline
                  children: [
                    (C {($ Id.VSub_DollarName '$ECHO')} {(DQ <X> ($ Id.VSub_DollarName '$libobj'))})
                    (C {($ Id.VSub_DollarName '$GREP')} 
                      {(SQ <'[]~#^*{};<>?"'>) (DQ <'\''>) (SQ <'\t &()|`$[]'>)}
                    )
                  ]
                  negated: F
                )
                (C {<func_warning>} 
                  {
                    (DQ <'libobj name '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                      ($ Id.VSub_DollarName '$libobj') <'\' may not contain shell special characters.'>
                    )
                  }
                )
              ]
            )
            (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName '$obj'))} {(DQ <'/'>)} {(DQ )})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:objname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                  spids: [7709]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:xdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                  spids: [7715]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lobj)
                  op: assign_op.Equal
                  rhs: 
                    {(${ Id.VSub_Name xdir) ($ Id.VSub_DollarName '$objdir') <'/'> 
                      ($ Id.VSub_DollarName '$objname')
                    }
                  spids: [7721]
                )
              ]
            )
            (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: [
                    (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 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: [7771]
                        )
                      ]
                    )
                  ]
                  spids: [7755 7768]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:removelist)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ($ Id.VSub_DollarName '$lobj') <' '> ($ Id.VSub_DollarName '$libobj') 
                            <' '> (${ Id.VSub_Name libobj) <T>
                          )
                        }
                      spids: [7789]
                    )
                  ]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [
                    {<cygwin> <Id.Lit_Star '*'>}
                    {<mingw> <Id.Lit_Star '*'>}
                    {<pw32> <Id.Lit_Star '*'>}
                    {<os2> <Id.Lit_Star '*'>}
                    {<cegcc> <Id.Lit_Star '*'>}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [7842]
                        )
                      ]
                    )
                  ]
                  spids: [7817 7839 7846 -1]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:pic_mode)
                          op: assign_op.Equal
                          rhs: {<default>}
                          spids: [7885]
                        )
                      ]
                    )
                  ]
                  spids: [7852 7878]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:output_obj)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$srcfile'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(SQ <'s%^.*/%%; s%\\.[^.]*$%%'>)}
                                      )
                                    ]
                                    negated: F
                                  )
                              ) <.> (${ Id.VSub_Name objext)
                            }
                          spids: [7917]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:lockfile)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$output_obj') <.lock>)}
                          spids: [7943]
                        )
                      ]
                    )
                  ]
                  spids: [7901 7914]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:output_obj)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [7953]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:need_locks)
                      op: assign_op.Equal
                      rhs: {<no>}
                      spids: [7956]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:lockfile)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [7960]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (command.Simple
                                  words: [
                                    {<ln>}
                                    {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                    {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_echo>} 
                              {
                                (DQ <'Waiting for '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' to be removed'>
                                )
                              }
                            )
                            (C {<sleep>} {<2>})
                          ]
                        )
                    )
                  ]
                  spids: [7975 7988]
                )
                (if_arm
                  cond: [
                    (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: [
                            (command.Sentence
                              child: (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' exists and contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'This indicates that another process is trying to use the same\n'> 
                                  <
'temporary object file, and libtool could not work around it because\n'
                                  > <'your compiler does not support '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  <'-c\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-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: [8047 8058]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:removelist)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$removelist') <' '> 
                                ($ Id.VSub_DollarName '$output_obj')
                              )
                            }
                          spids: [8111]
                        )
                      ]
                    )
                    (command.Simple
                      words: [{($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$srcfile'))}]
                      redirects: [
                        (redir
                          op: <Id.Redir_Great '>'>
                          loc: (redir_loc.Fd fd:1)
                          arg: {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [8031 8044]
                )
              ]
            )
            (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 name:removelist)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$removelist') <' '> ($ Id.VSub_DollarName '$lockfile'))
                    }
                  spids: [8145]
                )
              ]
            )
            (C {<trap>} {(SQ <'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'>)} {<1>} {<2>} {<15>})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$fix_srcfile_path'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<eval>} 
                      {
                        (DQ <'srcfile='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          ($ Id.VSub_DollarName '$fix_srcfile_path') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                  ]
                  spids: [8167 8178]
                )
              ]
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$srcfile'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:qsrcfile)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_result')}
                  spids: [8201]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:fbsd_hideous_sh_bug)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$base_compile')}
                          spids: [8230]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                        ($ Id.VSub_DollarName '$qsrcfile') <' '> ($ Id.VSub_DollarName '$pic_flag')
                                      )
                                    }
                                  spids: [8252]
                                )
                              ]
                            )
                          ]
                          spids: [8235 8249]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                    ($ Id.VSub_DollarName '$qsrcfile')
                                  )
                                }
                              spids: [8269]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_mkdir_p>} 
                      {(DQ ($ Id.VSub_DollarName '$xdir') ($ Id.VSub_DollarName '$objdir'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$command') <' -o '> 
                                        ($ Id.VSub_DollarName '$lobj')
                                      )
                                    }
                                  spids: [8308]
                                )
                              ]
                            )
                          ]
                          spids: [8290 8301]
                        )
                      ]
                    )
                    (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: [
                            (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'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$srcfile'))}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') <' contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName '$srcfile') <'\n'> <'\n'> 
                                  <
'This indicates that another process is trying to use the same\n'
                                  > <'temporary object file, and libtool could not work around it because\n'> 
                                  <'your compiler does not support '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-c\' and '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                  ) <'-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: [8334 8374]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [8436 8464]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:suppress_output)
                                  op: assign_op.Equal
                                  rhs: {(SQ <' >/dev/null 2>&1'>)}
                                  spids: [8504]
                                )
                              ]
                            )
                          ]
                          spids: [8488 8501]
                        )
                      ]
                    )
                  ]
                  spids: [8210 8223]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [
                            (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 name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                        ($ Id.VSub_DollarName '$qsrcfile') ($ Id.VSub_DollarName '$pie_flag')
                                      )
                                    }
                                  spids: [8558]
                                )
                              ]
                            )
                          ]
                          spids: [8537 8551]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:command)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$base_compile') <' '> 
                                    ($ Id.VSub_DollarName '$qsrcfile') <' '> ($ Id.VSub_DollarName '$pic_flag')
                                  )
                                }
                              spids: [8570]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$command') <' -o '> 
                                        ($ Id.VSub_DollarName '$obj')
                                      )
                                    }
                                  spids: [8599]
                                )
                              ]
                            )
                          ]
                          spids: [8583 8596]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$command') 
                                ($ Id.VSub_DollarName '$suppress_output')
                              )
                            }
                          spids: [8615]
                        )
                      ]
                    )
                    (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: [
                            (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'>}
                                                  )
                                                ]
                                                do_fork: T
                                              )
                                          )
                                        )
                                      } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$srcfile'))}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {($ Id.VSub_DollarName '$ECHO')} 
                              {
                                (DQ <'*** ERROR, '> ($ Id.VSub_DollarName '$lockfile') <' contains:\n'> 
                                  (command_sub
                                    left_token: <Id.Left_Backtick '`'>
                                    child: 
                                      (command.Simple
                                        words: [{<cat>} {($ Id.VSub_DollarName '$lockfile')}]
                                        redirects: [
                                          (redir
                                            op: <Id.Redir_Great '2>'>
                                            loc: (redir_loc.Fd fd:2)
                                            arg: {<'/dev/null'>}
                                          )
                                        ]
                                        do_fork: T
                                      )
                                  ) <'\n'> <'\n'> <'but it should contain:\n'> ($ Id.VSub_DollarName '$srcfile') <'\n'> <'\n'> 
                                  <
'This indicates that another process is trying to use the same\n'
                                  > <'temporary object file, and libtool could not work around it because\n'> 
                                  <'your compiler does not support '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-c\' and '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                  ) <'-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: [8636 8676]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [8738 8766]
                        )
                      ]
                    )
                  ]
                  spids: [8521 8534]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DPipe]
              children: [
                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                (BraceGroup
                  children: [
                    (C {<func_write_libtool_object>} {(DQ ($ Id.VSub_DollarName '$libobj'))} 
                      {(DQ ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$objname'))} {(DQ ($ Id.VSub_DollarName '$objname'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:removelist)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$lockfile')}
                                  spids: [8835]
                                )
                              ]
                            )
                            (C {($ Id.VSub_DollarName '$RM')} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                          ]
                          spids: [8818 8832]
                        )
                      ]
                    )
                  ]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {($ Id.VSub_DollarName '$opt_help')})
        (BraceGroup
          children: [
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {(DQ ($ Id.VSub_DollarName '$mode'))} {<Id.Lit_Equals '='>} {<compile>})
                (C {<func_mode_compile>} 
                  {
                    (braced_var_sub
                      token: <Id.VSub_Number 1>
                      suffix_op: 
                        (suffix_op.Unary
                          op_id: Id.VTest_Plus
                          arg_word: {(DQ ($ Id.VSub_At '$@'))}
                        )
                    )
                  }
                )
              ]
            )
          ]
        )
      ]
    )
    (command.ShFunction
      name: func_mode_help
      body: 
        (BraceGroup
          children: [
            (command.Case
              to_match: {($ Id.VSub_DollarName '$mode')}
              arms: [
                (case_arm
                  pat_list: [{(DQ )}]
                  action: [(C {<func_help>})]
                  spids: [8911 8913 8927 -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 '\\`'>) 
                          <'/bin/rm\').  RM-OPTIONS are options (such as '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-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: [8931 8932 8958 -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 '\\`'>) 
                          <'.o\' file suitable for static linking\n'> <'  -static           only build a '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'.o\' file suitable for static linking\n'> <'  -Wc,FLAG          pass FLAG directly to the compiler\n'> <'\n'> 
                          <'COMPILE-COMMAND is a command to be used in creating a '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'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 '\\`'>) <'.c\' with the\n'> 
                          <'library object suffix, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'.lo\'.'>
                        )
                      }
                    )
                  ]
                  spids: [8962 8963 9005 -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 '\\`'>) <'-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: [9009 9010 9040 -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 '\\`'>
                          ) <'--dry-run\' option if you just want to see what would be executed.'>
                        )
                      }
                    )
                  ]
                  spids: [9044 9045 9067 -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 '\\`'>) <'install\' or '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'cp\' program.\n'> <'\n'> <'The following components of INSTALL-COMMAND are treated specially:\n'> 
                          <'\n'> <'  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation\n'> <'\n'> 
                          <
'The rest of the components are interpreted as arguments to that command (only\n'
                          > <'BSD-compatible install options are recognized).'>
                        )
                      }
                    )
                  ]
                  spids: [9071 9072 9101 -1]
                )
                (case_arm
                  pat_list: [{<link>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'Usage: '> ($ Id.VSub_DollarName '$progname') 
                          <' [OPTION]... --mode=link LINK-COMMAND...\n'> <'\n'> <'Link object files or libraries together to form another library, or to\n'> 
                          <'create an executable program.\n'> <'\n'> <'LINK-COMMAND is a command using the C compiler that you would use to create\n'> 
                          <'a program from several object files.\n'> <'\n'> <'The following components of LINK-COMMAND are treated specially:\n'> <'\n'> 
                          <'  -all-static       do not do any dynamic linking at all\n'> <'  -avoid-version    do not add a version suffix if possible\n'> 
                          <
'  -bindir BINDIR    specify path to binaries directory (for systems where\n'
                          > <'                    libraries must be found in the PATH setting at runtime)\n'> 
                          <'  -dlopen FILE      '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'-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'> <'  -Wc,FLAG\n'> 
                          <
'  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler\n'
                          > <'  -Wl,FLAG\n'> <'  -Xlinker FLAG     pass linker-specific FLAG directly to the linker\n'> 
                          <
'  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)\n'
                          > <'\n'> <'All other options (arguments beginning with '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'-\') are ignored.\n'> <'\n'> <'Every other argument is treated as a filename.  Files ending in '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'.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 '\\`'>) 
                          <'.la\', then a libtool library is created,\n'> <'only library objects ('> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'.lo\' files) may be specified, and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-rpath\' is\n'> 
                          <'required, except when creating a convenience library.\n'> <'\n'> <'If OUTPUT-FILE ends in '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'.a\' or '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'.lib\', then a standard library is created\n'> <'using '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ar\' and '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'ranlib\', or on Windows using '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'lib\'.\n'> <'\n'> <'If OUTPUT-FILE ends in '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                          <'.lo\' or '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <.> (${ Id.VSub_Name objext) 
                          <'\', then a reloadable object file\n'> <'is created, otherwise an executable program is created.'>
                        )
                      }
                    )
                  ]
                  spids: [9105 9106 9211 -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 '\\`'>) 
                          <'/bin/rm\').  RM-OPTIONS are options (such as '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-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: [9215 9216 9242 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<func_fatal_help>} 
                      {
                        (DQ <'invalid operation mode '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) ($ Id.VSub_DollarName '$mode') <'\''>
                        )
                      }
                    )
                  ]
                  spids: [9246 9247 9260 -1]
                )
              ]
            )
            (C {<echo>})
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'Try '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  ($ Id.VSub_DollarName '$progname') <' --help\' for more information about other modes.'>
                )
              }
            )
          ]
        )
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: (C {($ Id.VSub_DollarName '$opt_help')})
              terminator: <Id.Op_Semi _>
            )
          ]
          action: [
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$opt_help'))} {<Id.Lit_Equals '='>} 
                          {<Id.Lit_Colon ':'>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<func_mode_help>})]
                  spids: [9293 9306]
                )
              ]
              else_action: [
                (command.Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {<func_help>} {<noexit>})
                        (command.ForEach
                          iter_name: mode
                          iter_words: [
                            {<compile>}
                            {<link>}
                            {<execute>}
                            {<install>}
                            {<finish>}
                            {<uninstall>}
                            {<clean>}
                          ]
                          do_arg_iter: F
                          body: (command.DoGroup children:[(C {<func_mode_help>})])
                        )
                      ]
                    )
                    (C {<sed>} {<-n>} {(SQ <'1p; 2,$s/^Usage:/  or: /p'>)})
                  ]
                  negated: F
                )
                (command.Pipeline
                  children: [
                    (BraceGroup
                      children: [
                        (C {<func_help>} {<noexit>})
                        (command.ForEach
                          iter_name: mode
                          iter_words: [
                            {<compile>}
                            {<link>}
                            {<execute>}
                            {<install>}
                            {<finish>}
                            {<uninstall>}
                            {<clean>}
                          ]
                          do_arg_iter: F
                          body: (command.DoGroup children:[(C {<echo>}) (C {<func_mode_help>})])
                        )
                      ]
                    )
                    (C {<sed>} 
                      {
                        (SQ <'1d\n'> <'      /^When reporting/,/^Report/{\n'> <'\tH\n'> <'\td\n'> 
                          <'      }\n'> <'      $x\n'> <'      /information about other modes/d\n'> <'      /more detailed .*MODE/d\n'> 
                          <'      s/^Usage:.*--mode=\\([^ ]*\\) .*/Description of \\1 mode:/'>
                        )
                      }
                    )
                  ]
                  negated: F
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_QMark '$?')}
            )
          ]
          spids: [9285 9290]
        )
      ]
    )
    (command.ShFunction
      name: func_mode_execute
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:cmd)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                  spids: [9456]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                (C {<func_fatal_help>} {(DQ <'you must specify a COMMAND'>)})
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$execute_dlfiles')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$file'))})
                        (C {<func_fatal_help>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                              ($ Id.VSub_DollarName '$file') <'\' is not a file'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dir)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [9520]
                        )
                      ]
                    )
                    (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 '\\`'>) 
                                      ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlname)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [9563]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [9566]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$file') <'\' was not linked with '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                              ) <'-export-dynamic\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [9581 9592]
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                  spids: [9643]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                ($ Id.VSub_DollarName '$objdir')
                                              )
                                            }
                                          spids: [9668]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9650 9665]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$dlname') <'\' in '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                              ($ Id.VSub_DollarName '$dir') <'\' or '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) ($ Id.VSub_DollarName '$dir') 
                                              <'/'> ($ Id.VSub_DollarName '$objdir') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                      spids: [9679 9694]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [9530 9532 9721 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                  spids: [9748]
                                )
                              ]
                            )
                          ]
                          spids: [9725 9727 9754 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  <'-dlopen\' is ignored for non-libtool libraries and objects'>
                                )
                              }
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [9758 9759 9773 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:absdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.AndOr
                                    ops: [Id.Op_DAmp]
                                    children: [
                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                      (C {<pwd>})
                                    ]
                                  )
                              )
                            }
                          spids: [9784]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$absdir'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:dir)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$absdir'))}
                              spids: [9810]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<eval>} {<test>} {<-z>} 
                                  {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                    (word_part.EscapedLiteral
                                      token: <Id.Lit_EscapedChar '\\$'>
                                    ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (C {<eval>} 
                              {($ Id.VSub_DollarName '$shlibpath_var') <Id.Lit_Equals '='> 
                                (word_part.EscapedLiteral
                                  token: <Id.Lit_EscapedChar '\\$'>
                                ) <dir>
                              }
                            )
                          ]
                          spids: [9821 9835]
                        )
                      ]
                      else_action: [
                        (C {<eval>} 
                          {($ Id.VSub_DollarName '$shlibpath_var') <Id.Lit_Equals '='> 
                            (word_part.EscapedLiteral
                              token: <Id.Lit_EscapedChar '\\$'>
                            ) <dir> <Id.Lit_Colon ':'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                            ($ Id.VSub_DollarName '$shlibpath_var')
                          }
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_execute_magic)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$magic'))}
                  spids: [9875]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:args)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [9886]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$file')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<-> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <.la>}
                            {<Id.Lit_Star '*'> <.lo>}
                          ]
                          spids: [9904 9917 9919 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<func_ltwrapper_script_p>} 
                                          {(DQ ($ Id.VSub_DollarName '$file'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$progdir') <'/'> 
                                                ($ Id.VSub_DollarName '$program')
                                              )
                                            }
                                          spids: [9953]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9930 9939]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<func_ltwrapper_executable_p>} 
                                          {(DQ ($ Id.VSub_DollarName '$file'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<func_ltwrapper_scriptname>} 
                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                    )
                                    (C {<func_source>} 
                                      {
                                        (DQ 
                                          ($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result')
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$progdir') <'/'> 
                                                ($ Id.VSub_DollarName '$program')
                                              )
                                            }
                                          spids: [9991]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [9961 9970]
                                )
                              ]
                            )
                          ]
                          spids: [9922 9923 10002 -1]
                        )
                      ]
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$file'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:args)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$args') <' '> 
                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                              )
                            }
                          spids: [10019]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [
                            (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: [10048 10059]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: lt_var
                      iter_words: [
                        {<LANG>}
                        {<LANGUAGE>}
                        {<LC_ALL>}
                        {<LC_CTYPE>}
                        {<LC_COLLATE>}
                        {<LC_MESSAGES>}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<eval>} 
                              {
                                (DQ <'if test '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{save_'> ($ Id.VSub_DollarName '$lt_var') 
                                  <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = set; then\n'> <'                '> 
                                  ($ Id.VSub_DollarName '$lt_var') <'='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <save_> 
                                  ($ Id.VSub_DollarName '$lt_var') <'; export '> ($ Id.VSub_DollarName '$lt_var') <'\n'> <'\t      else\n'> <'\t\t'> 
                                  ($ Id.VSub_DollarName '$lt_unset') <' '> ($ Id.VSub_DollarName '$lt_var') <'\n'> <'\t      fi'>
                                )
                              }
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:exec_cmd)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <cmd> 
                                ($ Id.VSub_DollarName '$args')
                              )
                            }
                          spids: [10142]
                        )
                      ]
                    )
                  ]
                  spids: [10031 10045]
                )
              ]
              else_action: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      action: [
                        (C {<eval>} 
                          {
                            (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\"'>
                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'shlibpath_var='> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\$'>
                              ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                        (C {<echo>} {(DQ <'export '> ($ Id.VSub_DollarName '$shlibpath_var'))})
                      ]
                      spids: [10157 10168]
                    )
                  ]
                )
                (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')}
                )
              ]
            )
          ]
        )
    )
    (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
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_finish
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libdirs)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                  spids: [10252]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:admincmds)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10258]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$finish_cmds') 
                                  ($ Id.VSub_DollarName '$finish_eval')
                                )
                              }
                            )
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$libdirs'))})
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ForEach
                      iter_name: dir
                      do_arg_iter: T
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdirs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$libdirs') <' '> 
                                        ($ Id.VSub_DollarName '$dir')
                                      )
                                    }
                                  spids: [10295]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [{($ Id.VSub_DollarName '$libdirs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [10319 10330]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$finish_eval'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'cmds='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$finish_eval') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmds'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:admincmds)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$admincmds') <'\n'> 
                                                    <'       '> ($ Id.VSub_DollarName '$cmds')
                                                  )
                                                }
                                              spids: [10395]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [10357 10368]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [10262 10284]
                )
              ]
            )
            (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')}
                )
              ]
            )
            (C {<echo>} {(DQ <---------------------------------------------------------------------->)})
            (C {<echo>} {(DQ <'Libraries have been installed in:'>)})
            (command.ForEach
              iter_name: libdir
              iter_words: [{($ Id.VSub_DollarName '$libdirs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {($ Id.VSub_DollarName '$ECHO')} {(DQ <'   '> ($ Id.VSub_DollarName '$libdir'))})
                  ]
                )
            )
            (C {<echo>})
            (C {<echo>} {(DQ <'If you ever happen to want to link against installed libraries'>)})
            (C {<echo>} {(DQ <'in a given directory, LIBDIR, you must either use libtool, and'>)})
            (C {<echo>} 
              {
                (DQ <'specify the full pathname of the library, or use the '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-LLIBDIR\''>
                )
              }
            )
            (C {<echo>} {(DQ <'flag during linking and do at least one of the following:'>)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'   - add LIBDIR to the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) ($ Id.VSub_DollarName '$shlibpath_var') <'\' environment variable'>
                        )
                      }
                    )
                    (C {<echo>} {(DQ <'     during execution'>)})
                  ]
                  spids: [10498 10509]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'   - add LIBDIR to the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) ($ Id.VSub_DollarName '$runpath_var') <'\' environment variable'>
                        )
                      }
                    )
                    (C {<echo>} {(DQ <'     during linking'>)})
                  ]
                  spids: [10532 10543]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:libdir)
                          op: assign_op.Equal
                          rhs: {<LIBDIR>}
                          spids: [10580]
                        )
                      ]
                    )
                    (C {<eval>} 
                      {
                        (DQ <'flag='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'   - use the '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) ($ Id.VSub_DollarName '$flag') <'\' linker flag'>
                        )
                      }
                    )
                  ]
                  spids: [10566 10577]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [10608 10619]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-f>} {<'/etc/ld.so.conf'>})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<echo>} 
                      {
                        (DQ <'   - have your system administrator add LIBDIR to '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'/etc/ld.so.conf\''>
                        )
                      }
                    )
                  ]
                  spids: [10633 10642]
                )
              ]
            )
            (C {<echo>})
            (C {<echo>} {(DQ <'See any operating system documentation about shared libraries for'>)})
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host')}
              arms: [
                (case_arm
                  pat_list: [
                    {<solaris2.> <Id.Lit_LBracket '['> <6789> <Id.Lit_RBracket ']'>}
                    {<solaris2.1> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>}
                  ]
                  action: [
                    (C {<echo>} 
                      {(DQ <'more information, such as the ld(1), crle(1) and ld.so(8) manual'>)}
                    )
                    (C {<echo>} {(DQ <pages.>)})
                  ]
                  spids: [10675 10684 10701 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {<echo>} 
                      {(DQ <'more information, such as the ld(1) and ld.so(8) manual pages.'>)}
                    )
                  ]
                  spids: [10704 10705 10715 -1]
                )
              ]
            )
            (C {<echo>} {(DQ <---------------------------------------------------------------------->)})
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (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
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_install
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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.Case
                              to_match: {($ Id.VSub_DollarName '$nonopt')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <shtool> <Id.Lit_Star '*'>}]
                                  action: [(C {<Id.Lit_Colon ':'>})]
                                  spids: [10820 10823 10826 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(C {<false>})]
                                  spids: [10828 10829 10832 -1]
                                )
                              ]
                            )
                          ]
                        )
                      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 name:install_prog)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result') <' '>)}
                          spids: [10851]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_Number '$1')}
                          spids: [10858]
                        )
                      ]
                    )
                    (C {<shift>})
                  ]
                  spids: [10781 10837]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:install_prog)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [10868]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:arg)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_DollarName '$nonopt')}
                      spids: [10871]
                    )
                  ]
                )
              ]
            )
            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_prog)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$install_prog') 
                        ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                      )
                    }
                  spids: [10894]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_shared_prog)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$install_prog')}
                  spids: [10901]
                )
              ]
            )
            (command.Case
              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$install_prog') <' '>)}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <'/'> <Id.Lit_RBracket ']'> <cp> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_cp)
                          op: assign_op.Equal
                          rhs: {<Id.Lit_Colon ':'>}
                          spids: [10927]
                        )
                      ]
                    )
                  ]
                  spids: [10916 10925 10930 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_cp)
                          op: assign_op.Equal
                          rhs: {<false>}
                          spids: [10936]
                        )
                      ]
                    )
                  ]
                  spids: [10933 10934 10939 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dest)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10950]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:files)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10953]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:opts)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10956]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prev)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10959]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:install_type)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10962]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:isdir)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [10965]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:stripme)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [10969]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:no_mode)
                  op: assign_op.Equal
                  rhs: {<Id.Lit_Colon ':'>}
                  spids: [10972]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg2)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [10984]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:files)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$files') <' '> 
                                        ($ Id.VSub_DollarName '$dest')
                                      )
                                    }
                                  spids: [11001]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dest)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [11009]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [10987 10998]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-d>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:isdir)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [11030]
                                )
                              ]
                            )
                          ]
                          spids: [11027 11028 11033 -1]
                        )
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {($ Id.VSub_DollarName '$install_cp')})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Sentence
                                      child: (C {<Id.Lit_Colon ':'>})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  spids: [11040 11045]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:prev)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$arg')}
                                      spids: [11053]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [11036 11037 11060 -1]
                        )
                        (case_arm
                          pat_list: [{<-g>} {<-m>} {<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                  spids: [11075]
                                )
                              ]
                            )
                          ]
                          spids: [11063 11072 11079 -1]
                        )
                        (case_arm
                          pat_list: [{<-s>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:stripme)
                                  op: assign_op.Equal
                                  rhs: {(DQ <' -s'>)}
                                  spids: [11086]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [11082 11083 11095 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          spids: [11098 11100 11103 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prev'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} 
                                                      {(DQ <x> ($ Id.VSub_DollarName '$prev'))} {<Id.Lit_Equals '='>} {<x-m>}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$install_override_mode'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:arg2)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$install_override_mode')}
                                                  spids: [11155]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:no_mode)
                                                  op: assign_op.Equal
                                                  rhs: {<false>}
                                                  spids: [11159]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [11128 11152]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [11166]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [11114 11125]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:dest)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$arg')}
                                      spids: [11172]
                                    )
                                  ]
                                )
                                (command.ControlFlow
                                  token: <Id.ControlFlow_Continue continue>
                                )
                              ]
                            )
                          ]
                          spids: [11106 11107 11182 -1]
                        )
                      ]
                    )
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_prog)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                              )
                            }
                          spids: [11200]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$arg2'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg2'))})]
                          spids: [11208 11219]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_shared_prog)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$install_shared_prog') <' '> 
                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                              )
                            }
                          spids: [11232]
                        )
                      ]
                    )
                  ]
                )
            )
            (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 '\\`'>) 
                      ($ Id.VSub_DollarName '$prev') <'\' option requires an argument'>
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$install_override_mode'))})
                            (C {($ Id.VSub_DollarName '$no_mode')})
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {($ Id.VSub_DollarName '$install_cp')})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.Sentence
                              child: (C {<Id.Lit_Colon ':'>})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          spids: [11305 11310]
                        )
                      ]
                      else_action: [
                        (C {<func_quote_for_eval>} 
                          {(DQ ($ Id.VSub_DollarName '$install_override_mode'))}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:install_shared_prog)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$install_shared_prog') <' -m '> 
                                    ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                  )
                                }
                              spids: [11325]
                            )
                          ]
                        )
                      ]
                    )
                  ]
                  spids: [11287 11302]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$files'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [11354 11365]
                        )
                      ]
                      else_action: [(C {<func_fatal_help>} {(DQ <'you must specify a destination'>)})]
                    )
                  ]
                  spids: [11340 11351]
                )
              ]
            )
            (C {<func_stripname>} {(SQ )} {(SQ <'/'>)} {(DQ ($ Id.VSub_DollarName '$dest'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dest)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                  spids: [11410]
                )
              ]
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$dest'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:isdir)
                      op: assign_op.Equal
                      rhs: {<yes>}
                      spids: [11429]
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:destdir)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$dest'))}
                          spids: [11449]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:destname)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [11455]
                        )
                      ]
                    )
                  ]
                  spids: [11433 11446]
                )
              ]
              else_action: [
                (C {<func_dirname_and_basename>} {(DQ ($ Id.VSub_DollarName '$dest'))} {(DQ )} {(DQ <.>)})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:destdir)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                      spids: [11475]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:destname)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                      spids: [11481]
                    )
                  ]
                )
                (command.Sentence
                  child: (C {<Id.KW_Set 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 '\\`'>) 
                          ($ Id.VSub_DollarName '$dest') <'\' is not a directory'>
                        )
                      }
                    )
                  ]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$destdir')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_LBracket '['> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\\\'>
                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                    }
                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                      <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                      <Id.Lit_Star '*'>
                    }
                  ]
                  spids: [11535 11552 11554 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ForEach
                      iter_name: file
                      iter_words: [{($ Id.VSub_DollarName '$files')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                                  spids: [11580 11582 11584 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ Id.VSub_DollarName '$destdir') <'\' must be an absolute directory name'>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [11587 11588 11600 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [11557 11558 11609 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_install_magic)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$magic'))}
                  spids: [11624]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:staticlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [11631]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:future_libdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [11634]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:current_libdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [11637]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$files')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$file')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:staticlibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$staticlibs') <' '> 
                                        ($ Id.VSub_DollarName '$file')
                                      )
                                    }
                                  spids: [11674]
                                )
                              ]
                            )
                          ]
                          spids: [11664 11667 11682 -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 '\\`'>) 
                                      ($ Id.VSub_DollarName '$file') <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [11715]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:old_library)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [11718]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [11721]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$destdir'))} 
                                          {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$libdir'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$current_libdirs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [11766 11773 11775 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:current_libdirs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$current_libdirs') 
                                                        <' '> ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [11781]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [11778 11779 11788 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [11736 11753]
                                )
                              ]
                              else_action: [
                                (command.Case
                                  to_match: {(DQ ($ Id.VSub_DollarName '$future_libdirs') <' '>)}
                                  arms: [
                                    (case_arm
                                      pat_list: [
                                        {<Id.Lit_Star '*'> 
                                          (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                        }
                                      ]
                                      spids: [11811 11818 11820 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:future_libdirs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$future_libdirs') <' '> 
                                                    ($ Id.VSub_DollarName '$libdir')
                                                  )
                                                }
                                              spids: [11826]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [11823 11824 11833 -1]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ <'/'>)} {(DQ )})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                  spids: [11857]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$dir') 
                                        ($ Id.VSub_DollarName '$objdir')
                                      )
                                    }
                                  spids: [11863]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ ($ Id.VSub_DollarName '$destdir'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {
                                                          (DQ <'s%'> ($ Id.VSub_DollarName '$libdir') 
                                                            <Id.Lit_Other '$'> <'%%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [11889]
                                        )
                                      ]
                                    )
                                    (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$file') <'\' to a directory not ending in '> ($ Id.VSub_DollarName '$libdir')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$inst_prefix_dir'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$relink_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ 
                                                                    <
's%@inst_prefix_dir@%-inst-prefix-dir '
                                                                    > ($ Id.VSub_DollarName '$inst_prefix_dir') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [11987]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [11969 11980]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:relink_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$relink_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {(DQ <'s%@inst_prefix_dir@%%'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [12012]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_warning>} 
                                      {
                                        (DQ <'relinking '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ 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 '\\\''>
                                        ) (SQ <' with the above command before installing it"'>)
                                      }
                                    )
                                  ]
                                  spids: [11871 11882]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (C {<Id.KW_Set set>} {<dummy>} {($ Id.VSub_DollarName '$library_names')})
                              terminator: <Id.Op_Semi _>
                            )
                            (C {<shift>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_Number '$1'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:realname)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                          spids: [12095]
                                        )
                                      ]
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:srcname)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$realname'))}
                                          spids: [12105]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:srcname)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$realname')) <T>}
                                              spids: [12121]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$install_shared_prog') <' '> 
                                          ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$srcname') <' '> ($ Id.VSub_DollarName '$destdir') <'/'> 
                                          ($ Id.VSub_DollarName '$realname')
                                        )
                                      } {(SQ <'exit $?'>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tstripme)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$stripme'))}
                                          spids: [12154]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host_os')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<cygwin> <Id.Lit_Star '*'>}
                                            {<mingw> <Id.Lit_Star '*'>}
                                            {<pw32> <Id.Lit_Star '*'>}
                                            {<cegcc> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$realname')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'> <.dll.a>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tstripme)
                                                          op: assign_op.Equal
                                                          rhs: {(DQ )}
                                                          spids: [12199]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [12194 12196 12204 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [12167 12184 12210 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [12216 12237]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} {<0>})
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ForEach
                                              iter_name: linkname
                                              do_arg_iter: T
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName '$linkname'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$realname'))}
                                                        )
                                                        (C {<func_show_eval>} 
                                                          {
                                                            (DQ <'(cd '> 
                                                              ($ Id.VSub_DollarName '$destdir') <' && { '> ($ Id.VSub_DollarName '$LN_S') <' -f '> ($ Id.VSub_DollarName '$realname') <' '> 
                                                              ($ Id.VSub_DollarName '$linkname') <' || { '> ($ Id.VSub_DollarName '$RM') <' '> ($ Id.VSub_DollarName '$linkname') <' && '> 
                                                              ($ Id.VSub_DollarName '$LN_S') <' '> ($ Id.VSub_DollarName '$realname') <' '> ($ Id.VSub_DollarName '$linkname') <'; }; })'>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [12259 12272]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                                ($ Id.VSub_DollarName '$realname')
                                              )
                                            }
                                          spids: [12352]
                                        )
                                      ]
                                    )
                                    (C {<func_execute_cmds>} 
                                      {(DQ ($ Id.VSub_DollarName '$postinstall_cmds'))} {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [12081 12092]
                                )
                              ]
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                  spids: [12386]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:instname)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                        ($ Id.VSub_DollarName '$name')
                                      ) <i>
                                    }
                                  spids: [12392]
                                )
                              ]
                            )
                            (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 name:staticlibs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$staticlibs') <' '> 
                                            ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                          )
                                        }
                                      spids: [12433]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [11686 11688 12443 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destname'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                                ($ Id.VSub_DollarName '$destname')
                                              )
                                            }
                                          spids: [12475]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12461 12472]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                      spids: [12493]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                            ($ Id.VSub_DollarName '$destfile')
                                          )
                                        }
                                      spids: [12499]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$destfile')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                                  action: [
                                    (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$destfile'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:staticdest)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                          spids: [12534]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12522 12524 12538 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:staticdest)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$destfile'))}
                                          spids: [12547]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [12553]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12541 12544 12556 -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 '\\`'>
                                          ) ($ Id.VSub_DollarName '$destfile') <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [12559 12560 12573 -1]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destfile'))})
                                (C {<func_show_eval>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                      ($ Id.VSub_DollarName '$file') <' '> ($ Id.VSub_DollarName '$destfile')
                                    )
                                  } {(SQ <'exit $?'>)}
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:staticobj)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                          spids: [12643]
                                        )
                                      ]
                                    )
                                    (C {<func_show_eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                          ) <'staticobj '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <staticdest>
                                        )
                                      } {(SQ <'exit $?'>)}
                                    )
                                  ]
                                  spids: [12616 12629]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [12447 12449 12671 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$destname'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:destfile)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                                ($ Id.VSub_DollarName '$destname')
                                              )
                                            }
                                          spids: [12697]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12683 12694]
                                )
                              ]
                              else_action: [
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                      spids: [12715]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:destfile)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                            ($ Id.VSub_DollarName '$destfile')
                                          )
                                        }
                                      spids: [12721]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:stripped_ext)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [12745]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                  {(DQ ($ Id.VSub_DollarName '$file'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:file)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [12792]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:stripped_ext)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <.exe>)}
                                                  spids: [12796]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [12762 12775]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12757 12759 12805 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<func_ltwrapper_executable_p>} 
                                                  {(DQ ($ Id.VSub_DollarName '$file'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<func_ltwrapper_scriptname>} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:wrapper)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                      )
                                                    }
                                                  spids: [12854]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [12835 12844]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                          {(DQ ($ Id.VSub_DollarName '$file'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:wrapper)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                              spids: [12875]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12823 12832 12882 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:wrapper)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$file')}
                                          spids: [12889]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12885 12886 12893 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<func_ltwrapper_script_p>} 
                                          {(DQ ($ Id.VSub_DollarName '$wrapper'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:notinst_deplibs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [12911]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [12914]
                                        )
                                      ]
                                    )
                                    (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$wrapper') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [12953]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: lib
                                      iter_words: [{($ Id.VSub_DollarName '$notinst_deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [12973]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [12976 12987]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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 ($ Id.VSub_DollarName '$lib'))}
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {(SQ <'s%^.*/%%g'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [13000]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 '\\`'>
                                                          ) ($ Id.VSub_DollarName '$lib') <'\' has not been installed in '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                          ) ($ Id.VSub_DollarName '$libdir') <'\''>
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:finalize)
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [13065]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [13027 13050]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [13076]
                                        )
                                      ]
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$wrapper'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:outputname)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [13087]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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
                                                  children: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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 name:tmpdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: (C {<func_mktempdir>})
                                                                      )
                                                                    }
                                                                  spids: [13139]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_basename>} 
                                                              {
                                                                (DQ ($ Id.VSub_DollarName '$file') 
                                                                  ($ Id.VSub_DollarName 
'$stripped_ext'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:file)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [13155]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: outputname
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$tmpdir'
                                                                        ) <'/'> ($ Id.VSub_DollarName '$file')
                                                                      )
                                                                    }
                                                                  spids: [13161]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: relink_command
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (command.Pipeline
                                                                            children: [
                                                                              (C 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$ECHO'
                                                                                  )
                                                                                } {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                                                              )
                                                                              (C 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$SED'
                                                                                  )
                                                                                } {(SQ <'s%@OUTPUT@%'>) (DQ ($ Id.VSub_DollarName '$outputname')) (SQ <'%g'>)}
                                                                              )
                                                                            ]
                                                                            negated: F
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [13173]
                                                                )
                                                              ]
                                                            )
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe]
                                                              children: [
                                                                (C 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
'$opt_silent'
                                                                    )
                                                                  }
                                                                )
                                                                (BraceGroup
                                                                  children: [
                                                                    (C {<func_quote_for_expand>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$relink_command'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<eval>} 
                                                                      {
                                                                        (DQ <'func_echo '> 
                                                                          ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<eval>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$relink_command'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [(C {<Id.Lit_Colon ':'>})]
                                                                  spids: [13225 13234]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<func_error>} 
                                                                  {
                                                                    (DQ <'error: relink '> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\`'>
                                                                      ) ($ Id.VSub_DollarName '$file') <'\' with the above command before installing it'>
                                                                    )
                                                                  }
                                                                )
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$opt_dry_run'
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {(${ Id.VSub_Name RM) <r>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$tmpdir'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ControlFlow
                                                                  token: 
                                                                    <Id.ControlFlow_Continue 
continue
                                                                    >
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:file)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$outputname'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [13272]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [13123 13136]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_warning>} 
                                                          {
                                                            (DQ <'cannot relink '> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\`'>
                                                              ) ($ Id.VSub_DollarName '$file') <'\''>
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13090 13113]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:file)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$file') 
                                                                ($ Id.VSub_DollarName '$stripped_ext')
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%'> <Id.Lit_Other '\\'> <'([^/]*'> 
                                                                <Id.Lit_Other '\\'> <')'> <Id.Lit_Other '$'> <'%'> ($ Id.VSub_DollarName '$objdir') <'/'> <Id.Lit_Other '\\'> <'1%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [13304]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [12899 12908]
                                )
                              ]
                            )
                            (command.Case
                              to_match: 
                                {($ Id.VSub_DollarName '$install_prog') <Id.Lit_Comma ','> 
                                  ($ Id.VSub_DollarName '$host')
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <'/usr/bin/install'> <Id.Lit_Star '*'> 
                                      <Id.Lit_Comma ','> <Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {($ Id.VSub_DollarName '$file') <Id.Lit_Colon ':'> 
                                          ($ Id.VSub_DollarName '$destfile')
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                              <Id.Lit_Star '*'> <.exe>
                                            }
                                          ]
                                          spids: [13384 13389 13396 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.exe> <Id.Lit_Colon ':'> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:destfile)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$destfile') <.exe>}
                                                  spids: [13406]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13399 13403 13411 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_Colon ':'> <Id.Lit_Star '*'> 
                                              <.exe>
                                            }
                                          ]
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$destfile'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:destfile)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [13435]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [13414 13418 13439 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [13365 13372 13445 -1]
                                )
                              ]
                            )
                            (C {<func_show_eval>} 
                              {
                                (DQ ($ Id.VSub_DollarName '$install_prog') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <'stripme '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'file '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\$'>
                                  ) <destfile>
                                )
                              } {(SQ <'exit $?'>)}
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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: [13472 13483]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [12675 12676 13499 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$staticlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:name)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                          spids: [13528]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlib)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$destdir') <'/'> 
                                ($ Id.VSub_DollarName '$name')
                              )
                            }
                          spids: [13539]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {
                        (DQ ($ Id.VSub_DollarName '$install_prog') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'file '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <oldlib>
                        )
                      } {(SQ <'exit $?'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [13565 13586]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$old_postinstall_cmds'))} 
                      {(SQ <'exit $?'>)}
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$future_libdirs'))})
                (C {<func_warning>} 
                  {
                    (DQ <'remember to run '> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\`'>
                      ) ($ Id.VSub_DollarName '$progname') <' --finish'> ($ Id.VSub_DollarName '$future_libdirs') <'\''>
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.AndOr
                          ops: [Id.Op_DAmp]
                          children: [
                            (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$current_libdirs'))})
                            (C {($ Id.VSub_DollarName '$opt_finish')})
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:current_libdirs)
                              op: assign_op.Equal
                              rhs: {(DQ <' -n'> ($ Id.VSub_DollarName '$current_libdirs'))}
                              spids: [13676]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:exec_cmd)
                          op: assign_op.Equal
                          rhs: {(SQ <'$SHELL $progpath $preserve_args --finish$current_libdirs'>)}
                          spids: [13683]
                        )
                      ]
                    )
                  ]
                  spids: [13650 13665]
                )
              ]
              else_action: [
                (command.ControlFlow
                  token: <Id.ControlFlow_Exit exit>
                  arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                )
              ]
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {(DQ ($ Id.VSub_DollarName '$mode'))} {<Id.Lit_Equals '='>} {<install>})
        (C {<func_mode_install>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_generate_dlsyms
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_outputname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [13746]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_originator)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$2'))}
                  spids: [13752]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_pic_p)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ 
                        (braced_var_sub
                          token: <Id.VSub_Number 3>
                          suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<no>})
                        )
                      )
                    }
                  spids: [13758]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_prefix)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                {(DQ ($ Id.VSub_DollarName '$my_originator'))}
                              )
                              (C {<sed>} {(SQ <'s%[^a-zA-Z0-9]%_%g'>)})
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [13768]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_dlsyms)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [13788]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$NM'))})
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$global_symbol_pipe'))}
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_dlsyms)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name my_outputname) <S.c>)}
                                  spids: [13844]
                                )
                              ]
                            )
                          ]
                          spids: [13820 13841]
                        )
                      ]
                      else_action: [
                        (C {<func_error>} 
                          {(DQ <'not configured to extract global symbols from dlpreopened files'>)}
                        )
                      ]
                    )
                  ]
                  spids: [13792 13817]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$my_dlsyms'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$my_dlsyms')}
                      arms: [
                        (case_arm
                          pat_list: [{(DQ )}]
                          spids: [13891 13893 13895 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.c>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:nlist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                        (${ Id.VSub_Name my_outputname) <.nm>
                                      )
                                    }
                                  spids: [13907]
                                )
                              ]
                            )
                            (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 '\\`'>) ($ 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 '\\"'>
                                        ) <C> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' {\n'> <'#endif\n'> <'\n'> 
                                        <
'#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))\n'
                                        > <'#pragma GCC diagnostic ignored '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <-Wstrict-prototypes> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'#endif\n'> <'\n'> 
                                        <'/* External symbol declarations for the compiler. */'>
                                      )
                                    }
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            ($ Id.VSub_DollarName '$my_dlsyms')
                                          )
                                        }
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                          ) ($ Id.VSub_DollarName '$output') <'\''>
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [{<echo>} {(SQ <': @PROGRAM@ '>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:progfiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$objs') 
                                                            ($ Id.VSub_DollarName '$old_deplibs')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SP2NL')})
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [14055]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: progfile
                                      iter_words: [{($ Id.VSub_DollarName '$progfiles')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'extracting global C symbols from '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                  ) ($ 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') <'\''>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$exclude_expsyms'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$EGREP')}
                                                        {<-v>}
                                                        {
                                                          (DQ <' ('> 
                                                            ($ Id.VSub_DollarName '$exclude_expsyms') <')'> <Id.Lit_Other '$'>
                                                          )
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {(DQ ($ Id.VSub_DollarName '$nlist')) <T>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (C {($ Id.VSub_DollarName '$MV')} 
                                                      {(DQ ($ Id.VSub_DollarName '$nlist')) <T>} {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14128 14139]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$export_symbols_regex')
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$EGREP')}
                                                        {<-e>}
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                            )
                                                          )
                                                        }
                                                        {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {(DQ ($ Id.VSub_DollarName '$nlist')) <T>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (C {($ Id.VSub_DollarName '$MV')} 
                                                      {(DQ ($ Id.VSub_DollarName '$nlist')) <T>} {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14191 14202]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$outputname') <.exp>
                                                      )
                                                    }
                                                  spids: [14269]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (BraceGroup
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$RM')} 
                                                      {($ Id.VSub_DollarName '$export_symbols')}
                                                    )
                                                    (command.Simple
                                                      words: [
                                                        {(${ Id.VSub_Name SED)}
                                                        {<-n>}
                                                        {<-e>}
                                                        {(SQ <'/^: @PROGRAM@ $/d'>)}
                                                        {<-e>}
                                                        {(SQ <'s/^.* \\(.*\\)$/\\1/p'>)}
                                                      ]
                                                      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 
'$export_symbols'
                                                                )
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      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: [{<echo>} {<EXPORTS>}]
                                                              redirects: [
                                                                (redir
                                                                  op: <Id.Redir_Great '>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$output_objdir'
                                                                        ) <'/'> ($ Id.VSub_DollarName '$outputname') <.def>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                            (command.Simple
                                                              words: [
                                                                {<cat>}
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$export_symbols'
                                                                    )
                                                                  )
                                                                }
                                                              ]
                                                              redirects: [
                                                                (redir
                                                                  op: <Id.Redir_DGreat '>>'>
                                                                  loc: (redir_loc.Fd fd:1)
                                                                  arg: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$output_objdir'
                                                                        ) <'/'> ($ Id.VSub_DollarName '$outputname') <.def>
                                                                      )
                                                                    }
                                                                )
                                                              ]
                                                              do_fork: T
                                                            )
                                                          ]
                                                          spids: [14328 14344 14377 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14255 14266]
                                        )
                                      ]
                                      else_action: [
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                            (BraceGroup
                                              children: [
                                                (command.Simple
                                                  words: [
                                                    {(${ Id.VSub_Name SED)}
                                                    {<-e>}
                                                    {(SQ <'s/\\([].[*^$]\\)/\\\\\\1/g'>)}
                                                    {<-e>}
                                                    {(SQ <'s/^/ /'>)}
                                                    {<-e>}
                                                    {(SQ <'s/$/$/'>)}
                                                  ]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Less '<'>
                                                      loc: (redir_loc.Fd fd:0)
                                                      arg: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$export_symbols')
                                                          )
                                                        }
                                                    )
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                            <'/'> ($ Id.VSub_DollarName '$outputname') <.exp>
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (command.Simple
                                                  words: [
                                                    {($ Id.VSub_DollarName '$GREP')}
                                                    {<-f>}
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$outputname') <.exp>
                                                      )
                                                    }
                                                  ]
                                                  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')) <T>}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                                (C {($ Id.VSub_DollarName '$MV')} 
                                                  {(DQ ($ Id.VSub_DollarName '$nlist')) <T>} {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$host')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                                        {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                                      ]
                                                      action: [
                                                        (command.Simple
                                                          words: [{<echo>} {<EXPORTS>}]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_Great '>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$outputname') <.def>
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                        (command.Simple
                                                          words: [
                                                            {<cat>}
                                                            {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                          ]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_DGreat '>>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$outputname') <.def>
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                      spids: [14478 14494 14527 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [14006 14019]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: dlprefile
                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_verbose>} 
                                      {
                                        (DQ <'extracting global C symbols from '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ Id.VSub_DollarName '$dlprefile') <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$dlprefile'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:name)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                          spids: [14572]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (BraceGroup
                                          children: [
                                            (command.Simple
                                              words: [
                                                {($ Id.VSub_DollarName '$ECHO')}
                                                {(DQ <': '> ($ Id.VSub_DollarName '$name') <' '>)}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$NM') <' '> 
                                                  ($ Id.VSub_DollarName '$dlprefile') <' 2>/dev/null | '> ($ Id.VSub_DollarName '$global_symbol_pipe') <' >> \''> 
                                                  ($ Id.VSub_DollarName '$nlist') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (BraceGroup
                                  children: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$nlist'))})
                                        (command.Simple
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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_Other '$'>
                                                  )
                                                }
                                                {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist')) <T>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (C {($ Id.VSub_DollarName '$MV')} 
                                              {(DQ ($ Id.VSub_DollarName '$nlist')) <T>} {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                          ]
                                          spids: [14652 14663]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.Pipeline
                                                  children: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$GREP')}
                                                        {<-v>}
                                                        {(DQ <'^: '>)}
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.Simple
                                                                  words: [{<sort>} {<-k>} {<3>}]
                                                                  redirects: [
                                                                    (redir
                                                                      op: <Id.Redir_Less '<'>
                                                                      loc: (redir_loc.Fd fd:0)
                                                                      arg: {<'/dev/null'>}
                                                                    )
                                                                    (redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: {<'/dev/null'>}
                                                                    )
                                                                    (redir
                                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                                      loc: (redir_loc.Fd fd:2)
                                                                      arg: {<1>}
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [(C {<sort>} {<-k>} {<3>})]
                                                          spids: [14728 14746]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<sort>} {<Id.Lit_Other '+'> <2>})
                                                      ]
                                                    )
                                                    (command.Simple
                                                      words: [{<uniq>}]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {(DQ ($ Id.VSub_DollarName '$nlist')) <S>}
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  negated: F
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [(C {<Id.Lit_Colon ':'>})]
                                          spids: [14709 14780]
                                        )
                                      ]
                                      else_action: [
                                        (command.Simple
                                          words: [{($ Id.VSub_DollarName '$GREP')} {<-v>} {(DQ <'^: '>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {(DQ ($ Id.VSub_DollarName '$nlist')) <S>}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [14815 14827]
                                        )
                                      ]
                                      else_action: [
                                        (command.Simple
                                          words: [{<echo>} {(SQ <'/* NONE */'>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                    ($ Id.VSub_DollarName '$my_dlsyms')
                                                  )
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'\n'> 
                                            <
'/* The mapping between symbol names and symbols.  */\n'
                                            > <'typedef struct {\n'> <'  const char *name;\n'> <'  void *address;\n'> <'} lt_dlsymlist;\n'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.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: [
                                                {<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')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lt_dlsym_const)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [14927]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14890 14906 14929 -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')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lt_dlsym_const)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [14954]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14932 14935 14956 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lt_dlsym_const)
                                                  op: assign_op.Equal
                                                  rhs: {<Id.KW_Const const>}
                                                  spids: [14963]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [14959 14960 14966 -1]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<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 '\\"'>
                                            ) ($ Id.VSub_DollarName '$my_originator') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                            <', (void *) 0 },'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$need_lib_prefix')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<no>}]
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
'$global_symbol_to_c_name_address'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [15018 15019 15043 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.Simple
                                              words: [
                                                {<eval>}
                                                {
                                                  (DQ 
                                                    ($ Id.VSub_DollarName 
'$global_symbol_to_c_name_address_lib_prefix'
                                                    )
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Less '<'>
                                                  loc: (redir_loc.Fd fd:0)
                                                  arg: {(DQ ($ Id.VSub_DollarName '$nlist'))}
                                                )
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$my_dlsyms')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [15046 15047 15071 -1]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {<echo>}
                                        {
                                          (DQ <'  {0, (void *) 0}\n'> <'};\n'> <'\n'> 
                                            <
'/* This works around a problem in FreeBSD linker */\n'
                                            > <'#ifdef FREEBSD_WORKAROUND\n'> <'static const void *lt_preloaded_setup() {\n'> <'  return lt_'> 
                                            (${ Id.VSub_Name my_prefix) <'_LTX_preloaded_symbols;\n'> <'}\n'> <'#endif\n'> <'\n'> <'#ifdef __cplusplus\n'> <'}\n'> <'#endif'>
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_DGreat '>>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$my_dlsyms')
                                              )
                                            }
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [15117]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$compile_command') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> (DQ <' -static '>) <Id.Lit_Star '*'>}]
                                  spids: [15130 15135 15137 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd3.0> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsdelf3.0> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <' '> ($ Id.VSub_DollarName '$pic_flag') 
                                                        <' -DFREEBSD_WORKAROUND'>
                                                      )
                                                    }
                                                  spids: [15191]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [15171 15188 15198 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-hpux> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:pic_flag_for_symtable)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ <' '> ($ Id.VSub_DollarName '$pic_flag'))}
                                                  spids: [15209]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [15201 15206 15215 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                              name: pic_flag_for_symtable
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$pic_flag')
                                                              )
                                                            }
                                                          spids: [15240]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [15222 15237]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [15218 15219 15250 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15140 15141 15256 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:symtab_cflags)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [15262]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: arg
                              iter_words: [{($ Id.VSub_DollarName '$LTCFLAGS')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<-pie>} {<-fpie>} {<-fPIE>}]
                                          spids: [15284 15293 15295 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:symtab_cflags)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$symtab_cflags') 
                                                        <' '> ($ Id.VSub_DollarName '$arg')
                                                      )
                                                    }
                                                  spids: [15301]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [15298 15299 15308 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<func_show_eval>} 
                              {
                                (SQ 
                                  <
'(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")'
                                  >
                                )
                              } {(SQ <'exit $?'>)}
                            )
                            (C {<func_show_eval>} 
                              {
                                (SQ 
                                  <
'$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
                                  >
                                )
                              }
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:symfileobj)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                        (${ Id.VSub_Name my_outputname) <S.> ($ Id.VSub_DollarName '$objext')
                                      )
                                    }
                                  spids: [15350]
                                )
                              ]
                            )
                            (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: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-f>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$my_outputname') <.def>
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$compile_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$my_outputname') <'.def '> ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [15405]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$finalize_command'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                                {
                                                                  (DQ <'s%@SYMFILE@%'> 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$my_outputname') <'.def '> ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [15431]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [15388 15402]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:compile_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$compile_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [15460]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:finalize_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$finalize_command'
                                                                )
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {
                                                              (DQ <'s%@SYMFILE@%'> 
                                                                ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                              )
                                                            }
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [15482]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15369 15385 15507 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compile_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$compile_command')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [15514]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_command')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (DQ <'s%@SYMFILE@%'> 
                                                            ($ Id.VSub_DollarName '$symfileobj') <'%'>
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [15536]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15510 15511 15558 -1]
                                )
                              ]
                            )
                          ]
                          spids: [13898 13900 15564 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ <'unknown suffix for '> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\`'>
                                  ) ($ Id.VSub_DollarName '$my_dlsyms') <'\''>
                                )
                              }
                            )
                          ]
                          spids: [15567 15568 15581 -1]
                        )
                      ]
                    )
                  ]
                  spids: [13870 13881]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:compile_command)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                    {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                  )
                                  (C {($ Id.VSub_DollarName '$SED')} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [15607]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:finalize_command)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: <Id.Left_Backtick '`'>
                            child: 
                              (command.Pipeline
                                children: [
                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                    {(DQ ($ Id.VSub_DollarName '$finalize_command'))}
                                  )
                                  (C {($ Id.VSub_DollarName '$SED')} {(DQ <'s% @SYMFILE@%%'>)})
                                ]
                                negated: F
                              )
                          )
                        }
                      spids: [15627]
                    )
                  ]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_win32_libid
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:win32_libid_type)
                  op: assign_op.Equal
                  rhs: {(DQ <unknown>)}
                  spids: [15684]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:win32_fileres)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Simple
                            words: [{<file>} {<-L>} {($ Id.VSub_Number '$1')}]
                            redirects: [
                              (redir
                                op: <Id.Redir_Great '2>'>
                                loc: (redir_loc.Fd fd:2)
                                arg: {<'/dev/null'>}
                              )
                            ]
                            do_fork: T
                          )
                      )
                    }
                  spids: [15690]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$win32_fileres')}
              arms: [
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <ar> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                      <archive> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <import> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\ '>
                      ) <library> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 archive import'>)}
                          spids: [15727]
                        )
                      ]
                    )
                  ]
                  spids: [15712 15721 15733 -1]
                )
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <ar> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) 
                      <archive> <Id.Lit_Star '*'>
                    }
                  ]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.Pipeline
                                  children: [
                                    (C {($ Id.VSub_DollarName '$OBJDUMP')} {<-f>} 
                                      {(DQ ($ Id.VSub_Number '$1'))}
                                    )
                                    (command.Simple
                                      words: [{($ Id.VSub_DollarName '$SED')} {<-e>} {(SQ <10q>)}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '2>'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName '$EGREP')}
                                        {
                                          (SQ 
                                            <
'file format (pe-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
                                            >
                                          )
                                        }
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                  ]
                                  negated: F
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:win32_nmres)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$NM')} {<-f>} {<posix>} {<-A>} 
                                                {(DQ ($ 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
                                          )
                                      )
                                    }
                                  spids: [15786]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$win32_nmres')}
                              arms: [
                                (case_arm
                                  pat_list: [{<import> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive import'>)}
                                          spids: [15843]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15839 15841 15847 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'x86 archive static'>)}
                                          spids: [15853]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [15850 15851 15857 -1]
                                )
                              ]
                            )
                          ]
                          spids: [15747 15783]
                        )
                      ]
                    )
                  ]
                  spids: [15736 15741 15866 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <DLL> <Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:win32_libid_type)
                          op: assign_op.Equal
                          rhs: {(DQ <'x86 DLL'>)}
                          spids: [15875]
                        )
                      ]
                    )
                  ]
                  spids: [15869 15872 15881 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <executable> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$win32_fileres')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <MS> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <Windows> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <PE> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <Intel> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:win32_libid_type)
                                  op: assign_op.Equal
                                  rhs: {(DQ <'x86 DLL'>)}
                                  spids: [15912]
                                )
                              ]
                            )
                          ]
                          spids: [15900 15909 15918 -1]
                        )
                      ]
                    )
                  ]
                  spids: [15884 15887 15924 -1]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$win32_libid_type'))})
          ]
        )
    )
    (command.ShFunction
      name: func_extract_an_archive
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:f_ex_an_ar_dir)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                      spids: [15955]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:f_ex_an_ar_oldlib)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [15964]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$lock_old_archive_extraction'))} 
                          {<Id.Lit_Equals '='>} {<yes>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:lockfile)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$f_ex_an_ar_oldlib') <.lock>}
                          spids: [15986]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_Until until>
                      cond: [
                        (command.Sentence
                          child: 
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (command.Simple
                                  words: [
                                    {<ln>}
                                    {(DQ ($ Id.VSub_DollarName '$progpath'))}
                                    {(DQ ($ Id.VSub_DollarName '$lockfile'))}
                                  ]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '2>'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<'/dev/null'>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (C {<func_echo>} 
                              {
                                (DQ <'Waiting for '> ($ Id.VSub_DollarName '$lockfile') 
                                  <' to be removed'>
                                )
                              }
                            )
                            (C {<sleep>} {<2>})
                          ]
                        )
                    )
                  ]
                  spids: [15970 15983]
                )
              ]
            )
            (C {<func_show_eval>} 
              {
                (DQ <'(cd '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <'f_ex_an_ar_dir && '> ($ Id.VSub_DollarName '$AR') <' x '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <f_ex_an_ar_oldlib> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <')'>
                )
              } {(SQ <'stat=$?; rm -f "$lockfile"; exit $stat'>)}
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$lock_old_archive_extraction'))} 
                          {<Id.Lit_Equals '='>} {<yes>}
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$lockfile'))})
                      ]
                    )
                  ]
                  spids: [16056 16069]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Subshell
                          child: 
                            (command.Pipeline
                              children: [
                                (C {($ Id.VSub_DollarName '$AR')} {<t>} 
                                  {(DQ ($ Id.VSub_DollarName '$f_ex_an_ar_oldlib'))}
                                )
                                (C {<sort>})
                                (command.Simple
                                  words: [{<sort>} {<-uc>}]
                                  redirects: [
                                    (redir
                                      op: <Id.Redir_Great '>'>
                                      loc: (redir_loc.Fd fd:1)
                                      arg: {<'/dev/null'>}
                                    )
                                    (redir
                                      op: <Id.Redir_GreatAnd '2>&'>
                                      loc: (redir_loc.Fd fd:2)
                                      arg: {<1>}
                                    )
                                  ]
                                  do_fork: T
                                )
                              ]
                              negated: F
                            )
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [16088 16117]
                )
              ]
              else_action: [
                (C {<func_fatal_error>} 
                  {
                    (DQ <'object name conflicts in archive: '> 
                      ($ Id.VSub_DollarName '$f_ex_an_ar_dir') <'/'> ($ Id.VSub_DollarName '$f_ex_an_ar_oldlib')
                    )
                  }
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_extract_archives
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.Sentence
              child: 
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:my_gentop)
                      op: assign_op.Equal
                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                      spids: [16156]
                    )
                  ]
                )
              terminator: <Id.Op_Semi _>
            )
            (C {<shift>})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_oldlibs)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: 
                          (suffix_op.Unary
                            op_id: Id.VTest_Plus
                            arg_word: {(DQ ($ Id.VSub_At '$@'))}
                          )
                      )
                    }
                  spids: [16165]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_oldobjs)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [16175]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xlib)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [16180]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xabs)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [16185]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:my_xdir)
                  op: assign_op.Equal
                  rhs: {(DQ )}
                  spids: [16190]
                )
              ]
            )
            (command.ForEach
              iter_name: my_xlib
              iter_words: [{($ Id.VSub_DollarName '$my_oldlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$my_xlib')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_LBracket '['> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\\\'>
                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> 
                              <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                              <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_xabs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$my_xlib'))}
                                  spids: [16238]
                                )
                              ]
                            )
                          ]
                          spids: [16219 16236 16243 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:my_xabs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>})) 
                                      (DQ <'/'> ($ Id.VSub_DollarName '$my_xlib'))
                                    }
                                  spids: [16249]
                                )
                              ]
                            )
                          ]
                          spids: [16246 16247 16260 -1]
                        )
                      ]
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$my_xlib'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xlib)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                          spids: [16273]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xlib_u)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$my_xlib')}
                          spids: [16279]
                        )
                      ]
                    )
                    (command.WhileUntil
                      keyword: <Id.KW_While while>
                      cond: [
                        (command.Sentence
                          child: (C {<Id.Lit_Colon ':'>})
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$extracted_archives') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' '> ($ Id.VSub_DollarName '$my_xlib_u') <' '>) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$extracted_serial')} 
                                      {<Id.Lit_Other '+'>} {<1>}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:extracted_serial)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                          spids: [16321]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:my_xlib_u)
                                          op: assign_op.Equal
                                          rhs: 
                                            {<lt> ($ Id.VSub_DollarName '$extracted_serial') <-> 
                                              ($ Id.VSub_DollarName '$my_xlib')
                                            }
                                          spids: [16325]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [16302 16309 16331 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)]
                                  spids: [16334 16335 16339 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:extracted_archives)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$extracted_archives') <' '> 
                                ($ Id.VSub_DollarName '$my_xlib_u')
                              )
                            }
                          spids: [16348]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_xdir)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$my_gentop') <'/'> 
                                ($ Id.VSub_DollarName '$my_xlib_u')
                              )
                            }
                          spids: [16356]
                        )
                      ]
                    )
                    (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName '$my_xdir'))})
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_verbose>} {(DQ <'Extracting '> ($ Id.VSub_DollarName '$my_xabs'))})
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                (BraceGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_orig_dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                              )
                                            }
                                          spids: [16405]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<cd>} {($ Id.VSub_DollarName '$my_xdir')})
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_archive)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$my_xabs')}
                                          spids: [16424]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_curdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: (C {<pwd>})
                                              )
                                            }
                                          spids: [16428]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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'))}
                                                  )
                                              )
                                            }
                                          spids: [16436]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:darwin_arches)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DPipe]
                                                    children: [
                                                      (command.Pipeline
                                                        children: [
                                                          (command.Simple
                                                            words: [
                                                              {($ Id.VSub_DollarName '$LIPO')}
                                                              {<-info>}
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$darwin_archive'
                                                                  )
                                                                )
                                                              }
                                                            ]
                                                            redirects: [
                                                              (redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                          (command.Simple
                                                            words: [
                                                              {($ Id.VSub_DollarName '$GREP')}
                                                              {<Architectures>}
                                                            ]
                                                            redirects: [
                                                              (redir
                                                                op: <Id.Redir_Great '2>'>
                                                                loc: (redir_loc.Fd fd:2)
                                                                arg: {<'/dev/null'>}
                                                              )
                                                            ]
                                                            do_fork: T
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                      (C {<true>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [16448]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$darwin_arches'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_arches)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$darwin_arches'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                                {(SQ <'s/.*are://'>)}
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [16492]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_arch)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [16514]
                                                )
                                              ]
                                            )
                                            (C {<func_verbose>} 
                                              {
                                                (DQ ($ Id.VSub_DollarName '$darwin_base_archive') 
                                                  <' has multiple architectures '> ($ Id.VSub_DollarName '$darwin_arches')
                                                )
                                              }
                                            )
                                            (command.ForEach
                                              iter_name: darwin_arch
                                              iter_words: [{($ Id.VSub_DollarName '$darwin_arches')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_mkdir_p>} 
                                                      {
                                                        (DQ <unfat-> ($ Id.VSub_Dollar '$$') <'/'> 
                                                          (${ Id.VSub_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>})
                                                          )
                                                        )
                                                      } {(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)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_filelist)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {<find>} 
                                                                {<unfat-> ($ Id.VSub_Dollar '$$')} {<-type>} {<f>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.o>} {<-print>} 
                                                                {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.lo>} {<-print>}
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$basename')
                                                                  )
                                                                }
                                                              )
                                                              (C {<sort>} {<-u>})
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [16657]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_file)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [16708]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:darwin_files)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [16711]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: darwin_file
                                              iter_words: [{($ Id.VSub_DollarName '$darwin_filelist')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:darwin_files)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C {<find>} 
                                                                        {<unfat-> 
                                                                          ($ Id.VSub_Dollar '$$')
                                                                        } {<-name>} {($ Id.VSub_DollarName '$darwin_file')} {<-print>}
                                                                      )
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$NL2SP'
                                                                          )
                                                                        }
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                              )
                                                            }
                                                          spids: [16726]
                                                        )
                                                      ]
                                                    )
                                                    (C {($ Id.VSub_DollarName '$LIPO')} {<-create>} 
                                                      {<-output>} {(DQ ($ Id.VSub_DollarName '$darwin_file'))} {($ Id.VSub_DollarName '$darwin_files')}
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {($ Id.VSub_DollarName '$RM')} {<-rf>} 
                                              {<unfat-> ($ Id.VSub_Dollar '$$')}
                                            )
                                            (C {<cd>} {(DQ ($ Id.VSub_DollarName '$darwin_orig_dir'))})
                                          ]
                                          spids: [16478 16489]
                                        )
                                      ]
                                      else_action: [
                                        (C {<cd>} {($ Id.VSub_DollarName '$darwin_orig_dir')})
                                        (C {<func_extract_an_archive>} 
                                          {(DQ ($ Id.VSub_DollarName '$my_xdir'))} {(DQ ($ Id.VSub_DollarName '$my_xabs'))}
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [16380 16383 16812 -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: [16815 16816 16830 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:my_oldobjs)
                          op: assign_op.Equal
                          rhs: 
                            {(DQ ($ Id.VSub_DollarName '$my_oldobjs') <' '>) 
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {<find>} {($ Id.VSub_DollarName '$my_xdir')} {<-name>} 
                                        {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) 
                                          <.> ($ Id.VSub_DollarName '$objext')
                                        } {<-print>} {<-o>} {<-name>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\*'>) <.lo>} {<-print>}
                                      )
                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [16836]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_extract_archives_result)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$my_oldobjs'))}
                  spids: [16879]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_emit_wrapper
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_emit_wrapper_arg1)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (braced_var_sub
                        token: <Id.VSub_Number 1>
                        suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:{<no>})
                      )
                    }
                  spids: [16938]
                )
              ]
            )
            (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'> <'sed_quote_subst=\''> 
                  ($ Id.VSub_DollarName '$sed_quote_subst') <'\'\n'> <'\n'> <'# Be Bourne compatible\n'> <'if test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{ZSH_VERSION+set}'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && (emulate sh) >/dev/null 2>&1; then\n'> <'  emulate sh\n'> <'  NULLCMD=:\n'> 
                  <'  # Zsh 3.x and 4.x performs word splitting on '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}, which\n'> <'  # is contrary to our usage.  Disable this feature.\n'> <'  alias -g \''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'}\'=\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\'\n'> <'  setopt NO_GLOB_SUBST\n'> <'else\n'> <'  case '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'(set -o) 2>/dev/null'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  <' in *posix*) set -o posix;; esac\n'> <'fi\n'> <'BIN_SH=xpg4; export BIN_SH # for Tru64\n'> <'DUALCASE=1; export DUALCASE # for MKS sh\n'> 
                  <'\n'> <'# The HP-UX ksh and POSIX shell print the target directory to stdout\n'> <'# if CDPATH is set.\n'> 
                  <'(unset CDPATH) >/dev/null 2>&1 && unset CDPATH\n'> <'\n'> <'relink_command='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  ($ Id.VSub_DollarName '$relink_command') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> 
                  <'# This environment variable determines our operation mode.\n'> <'if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_install_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'  # install mode needs the following variables:\n'> <'  generated_by_libtool_version=\''> 
                  ($ Id.VSub_DollarName '$macro_version') <'\'\n'> <'  notinst_deplibs=\''> ($ Id.VSub_DollarName '$notinst_deplibs') <'\'\n'> <'else\n'> 
                  <'  # When we are sourced in execute mode, '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'file and '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO are already set.\n'> <'  if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_execute_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <0> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                )
              }
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:qECHO)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: <Id.Left_Backtick '`'>
                        child: 
                          (command.Pipeline
                            children: [
                              (C {($ Id.VSub_DollarName '$ECHO')} {(DQ ($ Id.VSub_DollarName '$ECHO'))})
                              (C {($ Id.VSub_DollarName '$SED')} 
                                {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                              )
                            ]
                            negated: F
                          )
                      )
                    }
                  spids: [17080]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'\n'> <'# A function that is used when there is no print builtin or printf.\n'> 
                  <'func_fallback_echo ()\n'> <'{\n'> <'  eval \'cat <<_LTECHO_EOF\n'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <'1\n'> <'_LTECHO_EOF\'\n'> <'}\n'> <'    ECHO='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  ($ Id.VSub_DollarName '$qECHO') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'  fi'> <'\n'> 
                  <'  # Find the directory that this script lives in.\n'> <'  thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%/[^/]*'> <Id.Lit_Other '$'> <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> 
                  <'  test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && thisdir=.\n'> <'\n'> <'  # Follow symbolic links until we get to the real thisdir.\n'> <'  file='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -ld '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' -n \'s/.*-> //p\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  while test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; do\n'> <'    destdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%/[^/]*'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'%%\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'\n'> <'    # If there was a directory component, then change thisdir.\n'> <'    if test '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <x> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'      case '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> <'      ['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]* | [A-Za-z]:['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]*) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' ;;\n'> <'      *) thisdir='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <destdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' ;;\n'> <'      esac\n'> 
                  <'    fi\n'> <'\n'> <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') 
                  <' \'s%^.*/%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'    file='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -ld '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> ($ Id.VSub_DollarName '$SED') <' -n \'s/.*-> //p\''> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  done\n'> <'\n'> <'  # Usually \'no\', except on cygwin/mingw when embedded into\n'> 
                  <'  # the cwrapper.\n'> <'  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR='> ($ Id.VSub_DollarName '$func_emit_wrapper_arg1') <'\n'> 
                  <'  if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <WRAPPER_SCRIPT_BELONGS_IN_OBJDIR> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <yes> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> 
                  <'    # special case for \'.\'\n'> <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' = '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then\n'> <'      thisdir='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <pwd> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'    fi\n'> 
                  <'    # remove .libs from thisdir\n'> <'    case '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' in\n'> <'    *['> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]'> ($ Id.VSub_DollarName '$objdir') 
                  <' ) thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' | '> 
                  ($ Id.VSub_DollarName '$SED') <' \'s%['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/][^'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/]*'> <Id.Lit_Other '$'> <'%%\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <' ;;\n'> 
                  <'    '> ($ Id.VSub_DollarName '$objdir') <' )   thisdir=. ;;\n'> <'    esac\n'> <'  fi\n'> <'\n'> 
                  <'  # Try to get the absolute directory name.\n'> <'  absdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'cd '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <thisdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && pwd'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'  test -n '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <absdir> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' && thisdir='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <absdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'thisdir/'> ($ Id.VSub_DollarName '$objdir') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'\n'> <'  if test ! -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' ||\n'> <'     { file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'ls -1dt '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/../'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 2>/dev/null | '> 
                          (${ Id.VSub_Name SED) <' 1q'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'; '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) <'\n'> <'       test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <X> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <X> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; }; then\n'> <'\n'> 
                          <'    file='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <-> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> <'    if test ! -d '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'      '> ($ Id.VSub_DollarName '$MKDIR') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <progdir> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'    else\n'> <'      '> ($ Id.VSub_DollarName '$RM') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'    fi'>
                        )
                      }
                    )
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'\n'> <'    # relink executable if necessary\n'> <'    if test -n '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <relink_command> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'; then\n'> <'      if relink_command_output='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'eval '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <relink_command> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 2>&1'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) <'; then :\n'> <'      else\n'> <'\t'> ($ Id.VSub_DollarName '$ECHO') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <relink_command_output> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' >&2\n'> <'\t'> ($ Id.VSub_DollarName '$RM') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\texit 1\n'> <'      fi\n'> 
                          <'    fi\n'> <'\n'> <'    '> ($ Id.VSub_DollarName '$MV') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 2>/dev/null ||\n'> <'    { '> 
                          ($ Id.VSub_DollarName '$RM') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <';\n'> <'      '> ($ Id.VSub_DollarName '$MV') <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <file> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <program> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; }\n'> <'    '> 
                          ($ Id.VSub_DollarName '$RM') <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <file> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'\n'> <'  fi'>
                        )
                      }
                    )
                  ]
                  spids: [17355 17368]
                )
              ]
              else_action: [
                (C {($ Id.VSub_DollarName '$ECHO')} 
                  {
                    (DQ <'  program=\''> ($ Id.VSub_DollarName '$outputname') <'\'\n'> <'  progdir='> 
                      (word_part.EscapedLiteral
                        token: <Id.Lit_EscapedChar '\\"'>
                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'thisdir/'> 
                      ($ Id.VSub_DollarName '$objdir') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'>
                    )
                  }
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'\n'> <'  if test -f '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'; then'>
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 '\\"'>
                          ) ($ Id.VSub_DollarName '$temp_rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                          ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'\n'> <'\n'> 
                          <'    # Some systems cannot cope with colon-terminated '> ($ Id.VSub_DollarName '$shlibpath_var') <'\n'> 
                          <'    # The second colon is a workaround for a bug in BeOS R4 sed\n'> <'    '> ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\`'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) ($ Id.VSub_DollarName '$shlibpath_var') 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' | '> ($ Id.VSub_DollarName '$SED') <' \'s/::*'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'//\''> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'\n'> <'\n'> <'    export '> 
                          ($ Id.VSub_DollarName '$shlibpath_var') <'\n'>
                        )
                      }
                    )
                  ]
                  spids: [17625 17658]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dllsearchpath'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'    # Add the dll search path components to the executable PATH\n'> 
                          <'    PATH='> ($ Id.VSub_DollarName '$dllsearchpath') <':'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'PATH\n'>
                        )
                      }
                    )
                  ]
                  spids: [17714 17725]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'    if test '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <libtool_execute_magic> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' != '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$magic') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <'; then\n'> <'      # Run the actual program with our arguments.\n'>
                )
              }
            )
            (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 '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <progdir> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\\\'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [17774 17792 17819 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (C {($ Id.VSub_DollarName '$ECHO')} 
                      {
                        (DQ <'      exec '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\$'>
                          ) <'progdir/'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <program> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{1+'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'@'> 
                          (word_part.EscapedLiteral
                            token: <Id.Lit_EscapedChar '\\"'>
                          ) <'}\n'>
                        )
                      }
                    )
                  ]
                  spids: [17823 17824 17849 -1]
                )
              ]
            )
            (C {($ Id.VSub_DollarName '$ECHO')} 
              {
                (DQ <'      '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'0: cannot exec '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'program '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'*'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'      exit 1\n'> <'    fi\n'> <'  else\n'> <'    # The program doesn\'t exist.\n'> <'    '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'0: error: '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'progdir/'> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'program\' does not exist'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> 
                  <'    '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'This script is just a wrapper for '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                  <program.> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' 1>&2\n'> <'    '> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <'See the '> 
                  ($ Id.VSub_DollarName '$PACKAGE') <' documentation for more information.'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                  <' 1>&2\n'> <'    exit 1\n'> <'  fi\n'> <fi>
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: func_to_host_path
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [17988]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:lt_sed_naive_backslashify)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
                                  spids: [18022]
                                )
                              ]
                            )
                            (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 name:func_to_host_path_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Subshell
                                                        child: 
                                                          (C {<cmd>} {<'//c'>} {<echo>} 
                                                            {(DQ ($ Id.VSub_Number '$1'))}
                                                          )
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {(SQ <'s/[ ]*$//'>)} {<-e>} {(DQ ($ Id.VSub_DollarName '$lt_sed_naive_backslashify'))}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [18049]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18035 18039 18090 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cygpath>} {<-w>} 
                                                        {(DQ ($ Id.VSub_Number '$1'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$lt_sed_naive_backslashify'
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [18100]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18093 18097 18126 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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'>}
                                                      )
                                                    ]
                                                    do_fork: T
                                                  )
                                              )
                                            }
                                          spids: [18162]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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
                                                      name: func_to_host_path_result
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: 
                                                          (command.Pipeline
                                                            children: [
                                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$func_to_host_path_tmp1'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                              (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$lt_sed_naive_backslashify'
                                                                    )
                                                                  )
                                                                }
                                                              )
                                                            ]
                                                            negated: F
                                                          )
                                                      )
                                                    }
                                                  spids: [18207]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [18179 18204]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [18238]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18129 18131 18244 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 <'  '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ Id.VSub_Number '$1') <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_error>} 
                                      {(DQ <'Continuing, but uninstalled executables may not work.'>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_to_host_path_result)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                          spids: [18293]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18250 18262]
                                )
                              ]
                            )
                          ]
                          spids: [18015 18019 18302 -1]
                        )
                      ]
                    )
                  ]
                  spids: [17994 18005]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_to_host_pathlist
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:func_to_host_pathlist_result)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                  spids: [18381]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:lt_sed_naive_backslashify)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'s|\\\\\\\\*|\\\\|g;s|/|\\\\|g;s|\\\\|\\\\\\\\|g'>)}
                                  spids: [18415]
                                )
                              ]
                            )
                            (C {<func_stripname>} {<Id.Lit_Colon ':'>} {<Id.Lit_Colon ':'>} 
                              {(DQ ($ Id.VSub_Number '$1'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:func_to_host_pathlist_tmp1)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [18444]
                                )
                              ]
                            )
                            (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 name:func_to_host_pathlist_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (command.Subshell
                                                        child: 
                                                          (C {<cmd>} {<'//c'>} {<echo>} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$func_to_host_pathlist_tmp1'
                                                                )
                                                              )
                                                            }
                                                          )
                                                        redirects: [
                                                          (redir
                                                            op: <Id.Redir_Great '2>'>
                                                            loc: (redir_loc.Fd fd:2)
                                                            arg: {<'/dev/null'>}
                                                          )
                                                        ]
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {(SQ <'s/[ ]*$//'>)} {<-e>} {(DQ ($ Id.VSub_DollarName '$lt_sed_naive_backslashify'))}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [18469]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18455 18459 18513 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_to_host_pathlist_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {<cygpath>} {<-w>} {<-p>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$func_to_host_pathlist_tmp1'
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} {<-e>} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$lt_sed_naive_backslashify'
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [18523]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18516 18520 18551 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_to_host_pathlist_result)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [18563]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:func_to_host_pathlist_oldIFS)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$IFS')}
                                          spids: [18568]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {<Id.Lit_Colon ':'>}
                                          spids: [18572]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: func_to_host_pathlist_f
                                      iter_words: [
                                        {($ Id.VSub_DollarName '$func_to_host_pathlist_tmp1')}
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$func_to_host_pathlist_oldIFS'
                                                      )
                                                    }
                                                  spids: [18589]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [
                                                            (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: [
                                                                    (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
                                                                              name: 
func_to_host_pathlist_result
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$func_to_host_path_result'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [18645]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [18630 18642]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {<func_append>} 
                                                                  {<func_to_host_pathlist_result>} {(DQ <';'> ($ Id.VSub_DollarName '$func_to_host_path_result'))}
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [18615 18627]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [18593 18605]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$func_to_host_pathlist_oldIFS')}
                                          spids: [18676]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18554 18556 18680 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 <'  '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ Id.VSub_Number '$1') <'\''>
                                        )
                                      }
                                    )
                                    (C {<func_error>} 
                                      {(DQ <'Continuing, but uninstalled executables may not work.'>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lt_replace_pathsep_nix_to_dos)
                                          op: assign_op.Equal
                                          rhs: {(DQ <'s|:|;|g'>)}
                                          spids: [18744]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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
                                                  )
                                              )
                                            }
                                          spids: [18750]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18686 18697]
                                )
                              ]
                            )
                            (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 name:func_to_host_pathlist_result)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <';'> 
                                                ($ Id.VSub_DollarName '$func_to_host_pathlist_result')
                                              )
                                            }
                                          spids: [18797]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [18792 18795 18804 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_Number '$1'))}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <Id.Lit_Colon ':'>}]
                                  action: [
                                    (C {<func_append>} {<func_to_host_pathlist_result>} {(DQ <';'>)})
                                  ]
                                  spids: [18819 18822 18833 -1]
                                )
                              ]
                            )
                          ]
                          spids: [18408 18412 18839 -1]
                        )
                      ]
                    )
                  ]
                  spids: [18387 18398]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_emit_cwrapperexe_src
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 18918
                      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'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19080
                      stdin_parts: [
                        <'#ifdef _MSC_VER\n'>
                        <'# define _CRT_SECURE_NO_DEPRECATE 1\n'>
                        <'#endif\n'>
                        <'#include <stdio.h>\n'>
                        <'#include <stdlib.h>\n'>
                        <'#ifdef _MSC_VER\n'>
                        <'# include <direct.h>\n'>
                        <'# include <process.h>\n'>
                        <'# include <io.h>\n'>
                        <'#else\n'>
                        <'# include <unistd.h>\n'>
                        <'# include <stdint.h>\n'>
                        <'# ifdef __CYGWIN__\n'>
                        <'#  include <io.h>\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'#include <malloc.h>\n'>
                        <'#include <stdarg.h>\n'>
                        <'#include <assert.h>\n'>
                        <'#include <string.h>\n'>
                        <'#include <ctype.h>\n'>
                        <'#include <errno.h>\n'>
                        <'#include <fcntl.h>\n'>
                        <'#include <sys/stat.h>\n'>
                        <'\n'>
                        <'/* declarations of non-ANSI functions */\n'>
                        <'#if defined(__MINGW32__)\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'int _putenv (const char *);\n'>
                        <'# endif\n'>
                        <'#elif defined(__CYGWIN__)\n'>
                        <'# ifdef __STRICT_ANSI__\n'>
                        <'char *realpath (const char *, char *);\n'>
                        <'int putenv (char *);\n'>
                        <'int setenv (const char *, const char *, int);\n'>
                        <'# endif\n'>
                        <'/* #elif defined (other platforms) ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* portability defines, excluding path handling macros */\n'>
                        <'#if defined(_MSC_VER)\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'# define S_IXUSR _S_IEXEC\n'>
                        <'# ifndef _INTPTR_T_DEFINED\n'>
                        <'#  define _INTPTR_T_DEFINED\n'>
                        <'#  define intptr_t int\n'>
                        <'# endif\n'>
                        <'#elif defined(__MINGW32__)\n'>
                        <'# define setmode _setmode\n'>
                        <'# define stat    _stat\n'>
                        <'# define chmod   _chmod\n'>
                        <'# define getcwd  _getcwd\n'>
                        <'# define putenv  _putenv\n'>
                        <'#elif defined(__CYGWIN__)\n'>
                        <'# define HAVE_SETENV\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'/* #elif defined (other platforms) ... */\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#if defined(PATH_MAX)\n'>
                        <'# define LT_PATHMAX PATH_MAX\n'>
                        <'#elif defined(MAXPATHLEN)\n'>
                        <'# define LT_PATHMAX MAXPATHLEN\n'>
                        <'#else\n'>
                        <'# define LT_PATHMAX 1024\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef S_IXOTH\n'>
                        <'# define S_IXOTH 0\n'>
                        <'#endif\n'>
                        <'#ifndef S_IXGRP\n'>
                        <'# define S_IXGRP 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'/* path handling portability macros */\n'>
                        <'#ifndef DIR_SEPARATOR\n'>
                        <'# define DIR_SEPARATOR \'/\'\n'>
                        <'# define PATH_SEPARATOR \':\'\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \\\n'
                        >
                        <'  defined (__OS2__)\n'>
                        <'# define HAVE_DOS_BASED_FILE_SYSTEM\n'>
                        <'# define FOPEN_WB "wb"\n'>
                        <'# ifndef DIR_SEPARATOR_2\n'>
                        <'#  define DIR_SEPARATOR_2 \'\\\\\'\n'>
                        <'# endif\n'>
                        <'# ifndef PATH_SEPARATOR_2\n'>
                        <'#  define PATH_SEPARATOR_2 \';\'\n'>
                        <'# endif\n'>
                        <'#endif\n'>
                        <'\n'>
                        <'#ifndef DIR_SEPARATOR_2\n'>
                        <'# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)\n'>
                        <'#else /* DIR_SEPARATOR_2 */\n'>
                        <'# define IS_DIR_SEPARATOR(ch) \\\n'>
                        <'\t(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))\n'>
                        <'#endif /* DIR_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef PATH_SEPARATOR_2\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)\n'>
                        <'#else /* PATH_SEPARATOR_2 */\n'>
                        <'# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)\n'>
                        <'#endif /* PATH_SEPARATOR_2 */\n'>
                        <'\n'>
                        <'#ifndef FOPEN_WB\n'>
                        <'# define FOPEN_WB "w"\n'>
                        <'#endif\n'>
                        <'#ifndef _O_BINARY\n'>
                        <'# define _O_BINARY 0\n'>
                        <'#endif\n'>
                        <'\n'>
                        <
'#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))\n'
                        >
                        <'#define XFREE(stale) do { \\\n'>
                        <'  if (stale) { free ((void *) stale); stale = 0; } \\\n'>
                        <'} while (0)\n'>
                        <'\n'>
                        <'#undef LTWRAPPER_DEBUGPRINTF\n'>
                        <'#if defined LT_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_update_exe_path (const char *name, const char *value);\n'>
                        <'void lt_update_lib_path (const char *name, const char *value);\n'>
                        <'char **prepare_spawn (char **argv);\n'>
                        <'void lt_dump_script (FILE *f);\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 19099
                      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'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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.MultiLine
                              here_begin: {<EOF>}
                              here_end_span_id: 19156
                              stdin_parts: [
                                <'const char * LIB_PATH_VALUE   = '>
                                <Id.Right_DoubleQuote '"'>
                                ($ Id.VSub_DollarName '$func_to_host_pathlist_result')
                                <Id.Right_DoubleQuote '"'>
                                <';\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19102 19135]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.MultiLine
                          here_begin: {(DQ <EOF>)}
                          here_end_span_id: 19169
                          stdin_parts: [<'const char * LIB_PATH_VALUE   = "";\n'>]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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.MultiLine
                              here_begin: {<EOF>}
                              here_end_span_id: 19213
                              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'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19175 19186]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.MultiLine
                          here_begin: {(DQ <EOF>)}
                          here_end_span_id: 19227
                          stdin_parts: [
                            <'const char * EXE_PATH_VARNAME = "";\n'>
                            <'const char * EXE_PATH_VALUE   = "";\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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.MultiLine
                              here_begin: {<EOF>}
                              here_end_span_id: 19261
                              stdin_parts: [
                                <'const char * TARGET_PROGRAM_NAME = '>
                                <Id.Right_DoubleQuote '"'>
                                <lt->
                                ($ Id.VSub_DollarName '$outputname')
                                <Id.Right_DoubleQuote '"'>
                                <'; /* hopefully, no .exe */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19233 19246]
                )
              ]
              else_action: [
                (command.Simple
                  words: [{<cat>}]
                  redirects: [
                    (redir
                      op: <Id.Redir_DLess '<<'>
                      loc: (redir_loc.Fd fd:0)
                      arg: 
                        (redir_param.MultiLine
                          here_begin: {<EOF>}
                          here_end_span_id: 19277
                          stdin_parts: [
                            <'const char * TARGET_PROGRAM_NAME = '>
                            <Id.Right_DoubleQuote '"'>
                            ($ Id.VSub_DollarName '$outputname')
                            <Id.Right_DoubleQuote '"'>
                            <'; /* hopefully, no .exe */\n'>
                          ]
                        )
                    )
                  ]
                  do_fork: T
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19323
                      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'>
                        <'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'>
                      ]
                    )
                )
              ]
              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: [19334 19344 19358 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19409
                      stdin_parts: [
                        <'\t  lt_dump_script (stdout);\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'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {<EOF>}
                      here_end_span_id: 19436
                      stdin_parts: [
                        <'  newargz[0] =\n'>
                        <'    XMALLOC (char, (strlen (actual_cwrapper_path) +\n'>
                        <'\t\t    strlen ('>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$objdir')
                        <Id.Right_DoubleQuote '"'>
                        <') + 1 + strlen (actual_cwrapper_name) + 1));\n'>
                        <'  strcpy (newargz[0], actual_cwrapper_path);\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        ($ Id.VSub_DollarName '$objdir')
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                        <'  strcat (newargz[0], '>
                        <Id.Right_DoubleQuote '"'>
                        <'/'>
                        <Id.Right_DoubleQuote '"'>
                        <');\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19456
                      stdin_parts: [
                        <'  /* stop here, and copy so we don\'t have to do this twice */\n'>
                        <'  tmp_pathspec = xstrdup (newargz[0]);\n'>
                        <'\n'>
                        <'  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */\n'>
                        <'  strcat (newargz[0], actual_cwrapper_name);\n'>
                        <'\n'>
                        <'  /* DO want the lt- prefix here if it exists, so use target_name */\n'>
                        <'  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);\n'>
                        <'  XFREE (tmp_pathspec);\n'>
                        <'  tmp_pathspec = NULL;\n'>
                      ]
                    )
                )
              ]
              do_fork: T
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$host_os')}
              arms: [
                (case_arm
                  pat_list: [{<mingw> <Id.Lit_Star '*'>}]
                  action: [
                    (command.Simple
                      words: [{<cat>}]
                      redirects: [
                        (redir
                          op: <Id.Redir_DLess '<<'>
                          loc: (redir_loc.Fd fd:0)
                          arg: 
                            (redir_param.MultiLine
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 19489
                              stdin_parts: [
                                <'  {\n'>
                                <'    char* p;\n'>
                                <'    while ((p = strchr (newargz[0], \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'    while ((p = strchr (lt_argv_zero, \'\\\\\')) != NULL)\n'>
                                <'      {\n'>
                                <'\t*p = \'/\';\n'>
                                <'      }\n'>
                                <'  }\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19466 19468 19491 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19542
                      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], 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'>
                      ]
                    )
                )
              ]
              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.MultiLine
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 19574
                              stdin_parts: [
                                <
'  /* execv doesn\'t actually work on mingw as expected on unix */\n'
                                >
                                <'  newargz = prepare_spawn (newargz);\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'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19552 19554 19576 -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.MultiLine
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 19592
                              stdin_parts: [
                                <'  execv (lt_argv_zero, newargz);\n'>
                                <'  return rval; /* =127, but avoids unused variable warning */\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19579 19580 19594 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 19969
                      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'>
                        <'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'>
                      ]
                    )
                )
              ]
              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.MultiLine
                              here_begin: {(DQ <EOF>)}
                              here_end_span_id: 20103
                              stdin_parts: [
                                <'\n'>
                                <'/* Prepares an argument vector before calling spawn().\n'>
                                <
'   Note that spawn() does not by itself call the command interpreter\n'
                                >
                                <'     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :\n'>
                                <
'      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);\n'
                                >
                                <'         GetVersionEx(&v);\n'>
                                <'         v.dwPlatformId == VER_PLATFORM_WIN32_NT;\n'>
                                <'      }) ? "cmd.exe" : "command.com").\n'>
                                <
'   Instead it simply concatenates the arguments, separated by \' \', and calls\n'
                                >
                                <
'   CreateProcess().  We must quote the arguments since Win32 CreateProcess()\n'
                                >
                                <
'   interprets characters like \' \', \'\\t\', \'\\\\\', \'"\' (but not \'<\' and \'>\') in a\n'
                                >
                                <'   special way:\n'>
                                <
'   - Space and tab are interpreted as delimiters. They are not treated as\n'
                                >
                                <
'     delimiters if they are surrounded by double quotes: "...".\n'
                                >
                                <
'   - Unescaped double quotes are removed from the input. Their only effect is\n'
                                >
                                <
'     that within double quotes, space and tab are treated like normal\n'
                                >
                                <'     characters.\n'>
                                <
'   - Backslashes not followed by double quotes are not special.\n'
                                >
                                <'   - But 2*n+1 backslashes followed by a double quote become\n'>
                                <'     n backslashes followed by a double quote (n >= 0):\n'>
                                <'       \\" -> "\n'>
                                <'       \\\\\\" -> \\"\n'>
                                <'       \\\\\\\\\\" -> \\\\"\n'>
                                <' */\n'>
                                <
'#define SHELL_SPECIAL_CHARS "\\"\\\\ \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <
'#define SHELL_SPACE_CHARS " \\001\\002\\003\\004\\005\\006\\007\\010\\011\\012\\013\\014\\015\\016\\017\\020\\021\\022\\023\\024\\025\\026\\027\\030\\031\\032\\033\\034\\035\\036\\037"\n'
                                >
                                <'char **\n'>
                                <'prepare_spawn (char **argv)\n'>
                                <'{\n'>
                                <'  size_t argc;\n'>
                                <'  char **new_argv;\n'>
                                <'  size_t i;\n'>
                                <'\n'>
                                <'  /* Count number of arguments.  */\n'>
                                <'  for (argc = 0; argv[argc] != NULL; argc++)\n'>
                                <'    ;\n'>
                                <'\n'>
                                <'  /* Allocate new argument vector.  */\n'>
                                <'  new_argv = XMALLOC (char *, argc + 1);\n'>
                                <'\n'>
                                <'  /* Put quoted arguments into the new argument vector.  */\n'>
                                <'  for (i = 0; i < argc; i++)\n'>
                                <'    {\n'>
                                <'      const char *string = argv[i];\n'>
                                <'\n'>
                                <'      if (string[0] == \'\\0\')\n'>
                                <'\tnew_argv[i] = xstrdup ("\\"\\"");\n'>
                                <'      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)\n'>
                                <'\t{\n'>
                                <
'\t  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);\n'
                                >
                                <'\t  size_t length;\n'>
                                <'\t  unsigned int backslashes;\n'>
                                <'\t  const char *s;\n'>
                                <'\t  char *quoted_string;\n'>
                                <'\t  char *p;\n'>
                                <'\n'>
                                <'\t  length = 0;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length++;\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\tlength += backslashes + 1;\n'>
                                <'\t      length++;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    length += backslashes + 1;\n'>
                                <'\n'>
                                <'\t  quoted_string = XMALLOC (char, length + 1);\n'>
                                <'\n'>
                                <'\t  p = quoted_string;\n'>
                                <'\t  backslashes = 0;\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    *p++ = \'"\';\n'>
                                <'\t  for (s = string; *s != \'\\0\'; s++)\n'>
                                <'\t    {\n'>
                                <'\t      char c = *s;\n'>
                                <'\t      if (c == \'"\')\n'>
                                <'\t\t{\n'>
                                <'\t\t  unsigned int j;\n'>
                                <'\t\t  for (j = backslashes + 1; j > 0; j--)\n'>
                                <'\t\t    *p++ = \'\\\\\';\n'>
                                <'\t\t}\n'>
                                <'\t      *p++ = c;\n'>
                                <'\t      if (c == \'\\\\\')\n'>
                                <'\t\tbackslashes++;\n'>
                                <'\t      else\n'>
                                <'\t\tbackslashes = 0;\n'>
                                <'\t    }\n'>
                                <'\t  if (quote_around)\n'>
                                <'\t    {\n'>
                                <'\t      unsigned int j;\n'>
                                <'\t      for (j = backslashes; j > 0; j--)\n'>
                                <'\t\t*p++ = \'\\\\\';\n'>
                                <'\t      *p++ = \'"\';\n'>
                                <'\t    }\n'>
                                <'\t  *p = \'\\0\';\n'>
                                <'\n'>
                                <'\t  new_argv[i] = quoted_string;\n'>
                                <'\t}\n'>
                                <'      else\n'>
                                <'\tnew_argv[i] = (char *) string;\n'>
                                <'    }\n'>
                                <'  new_argv[argc] = NULL;\n'>
                                <'\n'>
                                <'  return new_argv;\n'>
                                <'}\n'>
                              ]
                            )
                        )
                      ]
                      do_fork: T
                    )
                  ]
                  spids: [19978 19980 20105 -1]
                )
              ]
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 20121
                      stdin_parts: [<'void lt_dump_script (FILE* f)\n'> <'{\n'>]
                    )
                )
              ]
              do_fork: T
            )
            (command.Pipeline
              children: [
                (C {<func_emit_wrapper>} {<yes>})
                (C {($ Id.VSub_DollarName '$SED')} {<-e>} {(SQ <'s/\\([\\\\"]\\)/\\\\\\1/g'>)} {<-e>} 
                  {(SQ <'s/^/  fputs ("/'>)} {<-e>} {(SQ <'s/$/\\\\n", f);/'>)}
                )
              ]
              negated: F
            )
            (command.Simple
              words: [{<cat>}]
              redirects: [
                (redir
                  op: <Id.Redir_DLess '<<'>
                  loc: (redir_loc.Fd fd:0)
                  arg: 
                    (redir_param.MultiLine
                      here_begin: {(DQ <EOF>)}
                      here_end_span_id: 20162
                      stdin_parts: [<'}\n'>]
                    )
                )
              ]
              do_fork: T
            )
          ]
        )
    )
    (command.ShFunction
      name: func_win32_import_lib_p
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.Case
              to_match: 
                {
                  (command_sub
                    left_token: <Id.Left_Backtick '`'>
                    child: 
                      (command.Pipeline
                        children: [
                          (C {<eval>} 
                            {(DQ ($ Id.VSub_DollarName '$file_magic_cmd') <' '>) 
                              ($ Id.VSub_Number '$1') (DQ <' 2>/dev/null'>)
                            }
                          )
                          (C {($ Id.VSub_DollarName '$SED')} {<-e>} {<10q>})
                        ]
                        negated: F
                      )
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <import> <Id.Lit_Star '*'>}]
                  action: [(C {<Id.Lit_Colon ':'>})]
                  spids: [20219 20222 20226 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(C {<false>})]
                  spids: [20229 20230 20234 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: func_mode_link
      body: 
        (BraceGroup
          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 name:allow_undefined)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [20342]
                        )
                      ]
                    )
                  ]
                  spids: [20263 20298 20346 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:allow_undefined)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [20353]
                        )
                      ]
                    )
                  ]
                  spids: [20349 20350 20357 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_args)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [20363]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:base_compile)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt') <' '> ($ Id.VSub_At '$@'))}
                  spids: [20367]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_command)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [20375]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_command)
                  op: assign_op.Equal
                  rhs: {($ Id.VSub_DollarName '$nonopt')}
                  spids: [20379]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20384]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20387]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compile_shlibpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20390]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:finalize_shlibpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20393]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:convenience)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20396]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:old_convenience)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20399]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20402]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:old_deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20405]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:compiler_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20408]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:linker_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20411]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20414]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:lib_search_path)
                  op: assign_op.Equal
                  rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
                  spids: [20417]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20425]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:new_inherited_linker_flags)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20428]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:avoid_version)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20432]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:bindir)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20436]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlfiles)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20439]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlprefiles)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20442]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:dlself)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20445]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_dynamic)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20449]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_symbols)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20453]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:export_symbols_regex)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20456]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:generated)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20459]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobjs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20462]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ltlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20465]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:module)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20468]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:no_install)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20472]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:objs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20476]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:non_pic_objects)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20479]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:precious_files_regex)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20482]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20485]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:preload)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20489]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prev)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20493]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:prevarg)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20496]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:release)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20499]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20502]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:xrpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20505]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:perm_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20508]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:temp_rpath)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20511]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:thread_safe)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20514]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:vinfo)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20518]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:vinfo_number)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [20521]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:weak_libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [20525]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:single_module)
                  op: assign_op.Equal
                  rhs: {(DQ (${ Id.VSub_Name wl) <-single_module>)}
                  spids: [20528]
                )
              ]
            )
            (C {<func_infer_tag>} {($ Id.VSub_DollarName '$base_compile')})
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(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 name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [20588]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [20562 20563 20595 -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: [
                                            (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: [20621 20644]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$link_static_flag'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [20671]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20657 20668]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [20678]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [20617 20618 20682 -1]
                                )
                                (case_arm
                                  pat_list: [{<-static>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$pic_flag'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$link_static_flag')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [20713]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20689 20710]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<built>}
                                          spids: [20720]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [20685 20686 20724 -1]
                                )
                                (case_arm
                                  pat_list: [{<-static-libtool-libs>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-z>} 
                                                      {(DQ ($ Id.VSub_DollarName '$pic_flag'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$link_static_flag')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlopen_self)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dlopen_self_static')}
                                                  spids: [20755]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20731 20752]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prefer_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [20762]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [20727 20728 20766 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [20772]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_old_libs)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [20776]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Break break>
                            )
                          ]
                          spids: [20598 20607 20783 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_archive_from_new_cmds'))})
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:build_old_libs)
                      op: assign_op.Equal
                      rhs: {<yes>}
                      spids: [20807]
                    )
                  ]
                )
              ]
            )
            (command.WhileUntil
              keyword: <Id.KW_While while>
              cond: [
                (command.Sentence
                  child: (C {<test>} {(DQ ($ Id.VSub_Pound '$#'))} {<-gt>} {<0>})
                  terminator: <Id.Op_Semi _>
                )
              ]
              body: 
                (command.DoGroup
                  children: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:arg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                          spids: [20832]
                        )
                      ]
                    )
                    (C {<shift>})
                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:qarg)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$func_quote_for_eval_unquoted_result')}
                          spids: [20848]
                        )
                      ]
                    )
                    (C {<func_append>} {<libtool_args>} 
                      {(DQ <' '> ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [20888 20889 20910 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$prev')}
                              arms: [
                                (case_arm
                                  pat_list: [{<bindir>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:bindir)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [20928]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [20934]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [20924 20925 20940 -1]
                                )
                                (case_arm
                                  pat_list: [{<dlfiles>} {<dlprefiles>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:preload)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [20987]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [20949 20962]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.la>}
                                            {<Id.Lit_Star '*'> <.lo>}
                                          ]
                                          spids: [21001 21008 21010 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<force>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<needless>}
                                                          spids: [21036]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:export_dynamic)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [21040]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21020 21033]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [21047]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [21016 21017 21053 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<self>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [21076]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21060 21073]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (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 name:dlself)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [21109]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21080 21106]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:dlself)
                                                      op: assign_op.Equal
                                                      rhs: {<needless>}
                                                      spids: [21116]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:export_dynamic)
                                                      op: assign_op.Equal
                                                      rhs: {<yes>}
                                                      spids: [21120]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [21127]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [21056 21057 21133 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:dlfiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$dlfiles') 
                                                                <' '> ($ Id.VSub_DollarName '$arg')
                                                              )
                                                            }
                                                          spids: [21156]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21140 21153]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:dlprefiles)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$dlprefiles') 
                                                            <' '> ($ Id.VSub_DollarName '$arg')
                                                          )
                                                        }
                                                      spids: [21167]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [21178]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [21136 21137 21184 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [20943 20946 21190 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [21197]
                                        )
                                      ]
                                    )
                                    (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$arg') <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21225]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21193 21194 21231 -1]
                                )
                                (case_arm
                                  pat_list: [{<expsyms_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols_regex)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [21238]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21244]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21234 21235 21250 -1]
                                )
                                (case_arm
                                  pat_list: [{<framework>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_DollarName '$deplibs') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$qarg') 
                                                        <'.ltframework '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [21282 21289 21291 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplibs') 
                                                                <' '> ($ Id.VSub_DollarName '$qarg') <.ltframework>
                                                              )
                                                            }
                                                          spids: [21297]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [21294 21295 21309 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [21264 21269 21315 -1]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21321]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21253 21254 21327 -1]
                                )
                                (case_arm
                                  pat_list: [{<inst_prefix>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:inst_prefix_dir)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [21334]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21340]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21330 21331 21346 -1]
                                )
                                (case_arm
                                  pat_list: [{<objectlist>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:save_arg)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$arg')}
                                                  spids: [21367]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:moreargs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [21371]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: fil
                                              iter_words: [
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (C {<cat>} 
                                                        {(DQ ($ Id.VSub_DollarName '$save_arg'))}
                                                      )
                                                  )
                                                }
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:arg)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_DollarName '$fil')}
                                                          spids: [21397]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<func_lalib_unsafe_p>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [21422]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: non_pic_object
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [21425]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_source>} 
                                                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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 '\\`'>) ($ Id.VSub_DollarName '$arg') <'\''>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                  spids: [21441 21489]
                                                                )
                                                              ]
                                                            )
                                                            (C {<func_dirname>} 
                                                              {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:xdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [21524]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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
                                                                              name: pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$xdir'
                                                                                ) ($ Id.VSub_DollarName '$pic_object')
                                                                              )
                                                                            }
                                                                          spids: [21552]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (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: [
                                                                                    (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
                                                                                              name: 
dlfiles
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$dlfiles'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$pic_object')
                                                                                              )
                                                                                            }
                                                                                          spids: [
21604
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
prev
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: (word.Empty)
                                                                                          spids: [
21612
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [21576 21601]
                                                                                )
                                                                              ]
                                                                              else_action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: prev
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          <
dlprefiles
                                                                                          >
                                                                                        }
                                                                                      spids: [21625]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [21560 21573]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (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
                                                                                      name: 
dlprefiles
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$dlprefiles'
                                                                                        ) <' '> ($ Id.VSub_DollarName '$pic_object')
                                                                                      )
                                                                                    }
                                                                                  spids: [21660]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: prev
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (word.Empty)
                                                                                  spids: [21668]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [21640 21653]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<func_append>} {<libobjs>} 
                                                                      {
                                                                        (DQ <' '> 
                                                                          ($ Id.VSub_DollarName 
'$pic_object'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: arg
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$pic_object'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [21689]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [21531 21545]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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
                                                                              name: non_pic_object
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$xdir'
                                                                                ) ($ Id.VSub_DollarName '$non_pic_object')
                                                                              )
                                                                            }
                                                                          spids: [21724]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (C {<func_append>} 
                                                                      {<non_pic_objects>} {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (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
                                                                                      name: arg
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$non_pic_object'
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [21773]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [21746 21770]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [21703 21717]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$pic_object'
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [21793]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$non_pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [21410 21419]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName 
'$opt_dry_run'
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                              action: [
                                                                (C {<func_dirname>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: xdir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [21845]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_lo2o>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$arg'))}
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$xdir'
                                                                          ) ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$func_lo2o_result')
                                                                        }
                                                                      spids: [21859]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: non_pic_object
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$xdir'
                                                                          ) ($ Id.VSub_DollarName '$func_lo2o_result')
                                                                        }
                                                                      spids: [21866]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_append>} {<libobjs>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                                (C {<func_append>} {<non_pic_objects>} 
                                                                  {
                                                                    (DQ <' '> 
                                                                      ($ Id.VSub_DollarName 
'$non_pic_object'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [21819 21824]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (C {<func_fatal_error>} 
                                                              {
                                                                (DQ 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                                  ) ($ Id.VSub_DollarName '$arg') <'\' is not a valid libtool object'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [21353 21364]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'link input file '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                              ) ($ Id.VSub_DollarName '$arg') <'\' does not exist'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$save_arg')}
                                          spids: [21928]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21932]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21349 21350 21938 -1]
                                )
                                (case_arm
                                  pat_list: [{<precious_regex>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:precious_files_regex)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [21945]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21951]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21941 21942 21957 -1]
                                )
                                (case_arm
                                  pat_list: [{<release>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:release)
                                          op: assign_op.Equal
                                          rhs: {(DQ <-> ($ Id.VSub_DollarName '$arg'))}
                                          spids: [21964]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [21971]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21960 21961 21977 -1]
                                )
                                (case_arm
                                  pat_list: [{<rpath>} {<xrpath>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$arg')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\\'>
                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                              <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                              <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [21999 22016 22018 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_fatal_error>} 
                                              {(DQ <'only absolute run-paths are allowed'>)}
                                            )
                                          ]
                                          spids: [22021 22022 22032 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '*'>
                                                    }
                                                  ]
                                                  spids: [22064 22071 22073 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:rpath)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rpath') 
                                                                <' '> ($ Id.VSub_DollarName '$arg')
                                                              )
                                                            }
                                                          spids: [22079]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [22076 22077 22086 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [22038 22051]
                                        )
                                      ]
                                      else_action: [
                                        (command.Case
                                          to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                                          arms: [
                                            (case_arm
                                              pat_list: [
                                                {<Id.Lit_Star '*'> 
                                                  (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) <Id.Lit_Star '*'>
                                                }
                                              ]
                                              spids: [22105 22112 22114 -1]
                                            )
                                            (case_arm
                                              pat_list: [{<Id.Lit_Star '*'>}]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:xrpath)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$xrpath') <' '> 
                                                            ($ Id.VSub_DollarName '$arg')
                                                          )
                                                        }
                                                      spids: [22120]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [22117 22118 22127 -1]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22136]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [21980 21985 22142 -1]
                                )
                                (case_arm
                                  pat_list: [{<shrext>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:shrext_cmds)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                                          spids: [22149]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22155]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [22145 22146 22161 -1]
                                )
                                (case_arm
                                  pat_list: [{<weak>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:weak_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$weak_libs') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [22168]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22176]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [22164 22165 22182 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcclinker>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$linker_flags') <' '> 
                                                ($ Id.VSub_DollarName '$qarg')
                                              )
                                            }
                                          spids: [22189]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$qarg')
                                              )
                                            }
                                          spids: [22197]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22205]
                                        )
                                      ]
                                    )
                                    (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: [22185 22186 22231 -1]
                                )
                                (case_arm
                                  pat_list: [{<xcompiler>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$qarg')
                                              )
                                            }
                                          spids: [22238]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22246]
                                        )
                                      ]
                                    )
                                    (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: [22234 22235 22272 -1]
                                )
                                (case_arm
                                  pat_list: [{<xlinker>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$linker_flags') <' '> 
                                                ($ Id.VSub_DollarName '$qarg')
                                              )
                                            }
                                          spids: [22279]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$qarg')
                                              )
                                            }
                                          spids: [22287]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22296]
                                        )
                                      ]
                                    )
                                    (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: [22275 22276 22324 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$prev') <'='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <arg> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [22343]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [22327 22328 22349 -1]
                                )
                              ]
                            )
                          ]
                          spids: [20867 20878]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:prevarg)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$arg'))}
                          spids: [22362]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-all-static>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [22380 22391]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22376 22377 22424 -1]
                        )
                        (case_arm
                          pat_list: [{<-allow-undefined>}]
                          action: [
                            (C {<func_fatal_error>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  <'-allow-undefined\' must not be used because it is the default'>
                                )
                              }
                            )
                          ]
                          spids: [22428 22429 22444 -1]
                        )
                        (case_arm
                          pat_list: [{<-avoid-version>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:avoid_version)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [22452]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22448 22449 22459 -1]
                        )
                        (case_arm
                          pat_list: [{<-bindir>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<bindir>}
                                  spids: [22467]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22463 22464 22474 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlfiles>}
                                  spids: [22482]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22478 22479 22489 -1]
                        )
                        (case_arm
                          pat_list: [{<-dlpreopen>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<dlprefiles>}
                                  spids: [22497]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22493 22494 22504 -1]
                        )
                        (case_arm
                          pat_list: [{<-export-dynamic>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:export_dynamic)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [22512]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22508 22509 22519 -1]
                        )
                        (case_arm
                          pat_list: [{<-export-symbols>} {<-export-symbols-regex>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [22531 22552]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:prev)
                                          op: assign_op.Equal
                                          rhs: {<expsyms>}
                                          spids: [22584]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22565 22581]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:prev)
                                      op: assign_op.Equal
                                      rhs: {<expsyms_regex>}
                                      spids: [22591]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22523 22528 22601 -1]
                        )
                        (case_arm
                          pat_list: [{<-framework>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<framework>}
                                  spids: [22609]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22605 22606 22616 -1]
                        )
                        (case_arm
                          pat_list: [{<-inst-prefix-dir>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<inst_prefix>}
                                  spids: [22624]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22620 22621 22631 -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: [22665 22680 22703 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22643 22653 22712 -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 name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [22735]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) <'-L\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) ($ Id.VSub_Number '$1') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [22753 22766]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_fatal_error>} 
                                          {
                                            (DQ <'need path for '> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\`'>
                                              ) <'-L\' option'>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22739 22750]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$dir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [22810 22827 22829 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:absdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DAmp]
                                                    children: [
                                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$dir'))})
                                                      (C {<pwd>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [22836]
                                        )
                                      ]
                                    )
                                    (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 '\\`'>
                                              ) ($ Id.VSub_DollarName '$dir') <'\''>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dir)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$absdir'))}
                                          spids: [22874]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22832 22833 22880 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$deplibs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [22896 22903 22905 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplibs') <' -L'> 
                                                ($ Id.VSub_DollarName '$dir')
                                              )
                                            }
                                          spids: [22912]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib_search_path)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$lib_search_path') <' '> 
                                                ($ Id.VSub_DollarName '$dir')
                                              )
                                            }
                                          spids: [22920]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22908 22909 22928 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:testbindir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ ($ Id.VSub_DollarName '$dir'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [22979]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$dir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [23008 23015 23017 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$dir')}
                                                  spids: [23024]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23020 23022 23026 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dllsearchpath') 
                                                        <':'> ($ Id.VSub_DollarName '$dir')
                                                      )
                                                    }
                                                  spids: [23032]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23029 23030 23038 -1]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$testbindir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [23053 23060 23062 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$testbindir')}
                                                  spids: [23069]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23065 23067 23071 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dllsearchpath') 
                                                        <':'> ($ Id.VSub_DollarName '$testbindir')
                                                      )
                                                    }
                                                  spids: [23077]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [23074 23075 23083 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [22941 22976 23089 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [22716 22718 23098 -1]
                        )
                        (case_arm
                          pat_list: [{<-l> <Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '*'>}
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [23148 23191 23201 -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: [23204 23209 23234 -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: [23237 23258 23283 -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 name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplibs') 
                                                        <' System.ltframework'>
                                                      )
                                                    }
                                                  spids: [23308]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [23286 23301 23318 -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: [23321 23334 23359 -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: [23362 23391 23416 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-linux> 
                                              <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: [23419 23424 23445 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23107 23138]
                                )
                                (if_arm
                                  cond: [
                                    (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: [23477 23498 23508 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23451 23467]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$deplibs') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [23517]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23102 23104 23528 -1]
                        )
                        (case_arm
                          pat_list: [{<-module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:module)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [23536]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23532 23533 23543 -1]
                        )
                        (case_arm
                          pat_list: [{<-model>} {<-arch>} {<-isysroot>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compiler_flags)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [23567]
                                )
                              ]
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [23595]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23559 23564 23602 -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 name:compiler_flags)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [23624]
                                )
                              ]
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.Case
                              to_match: 
                                {(DQ ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$arg') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [23662 23669 23671 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:new_inherited_linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '> ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [23678]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23674 23676 23685 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23606 23621 23694 -1]
                        )
                        (case_arm
                          pat_list: [{<-multi_module>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:single_module)
                                  op: assign_op.Equal
                                  rhs: {(DQ (${ Id.VSub_Name wl) <-multi_module>)}
                                  spids: [23702]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23698 23699 23714 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-fast-install>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:fast_install)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [23722]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23718 23719 23729 -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 '\\`'>
                                          ) <'-no-install\' is ignored for '> ($ Id.VSub_DollarName '$host')
                                        )
                                      }
                                    )
                                    (C {<func_warning>} 
                                      {
                                        (DQ <'assuming '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) <'-no-fast-install\' instead'>
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:fast_install)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [23816]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23744 23787 23820 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:no_install)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [23826]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [23823 23824 23829 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23733 23734 23838 -1]
                        )
                        (case_arm
                          pat_list: [{<-no-undefined>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:allow_undefined)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [23846]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23842 23843 23853 -1]
                        )
                        (case_arm
                          pat_list: [{<-objectlist>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<objectlist>}
                                  spids: [23861]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23857 23858 23868 -1]
                        )
                        (case_arm
                          pat_list: [{<-o>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<output>}
                                  spids: [23875]
                                )
                              ]
                            )
                          ]
                          spids: [23872 23873 23878 -1]
                        )
                        (case_arm
                          pat_list: [{<-precious-files-regex>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<precious_regex>}
                                  spids: [23886]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23882 23883 23893 -1]
                        )
                        (case_arm
                          pat_list: [{<-release>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<release>}
                                  spids: [23901]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23897 23898 23908 -1]
                        )
                        (case_arm
                          pat_list: [{<-rpath>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<rpath>}
                                  spids: [23916]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23912 23913 23923 -1]
                        )
                        (case_arm
                          pat_list: [{<-R>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xrpath>}
                                  spids: [23931]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23927 23928 23938 -1]
                        )
                        (case_arm
                          pat_list: [{<-R> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dir)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [23961]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$dir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [23976 23993 23995 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_error>} 
                                      {(DQ <'only absolute run-paths are allowed'>)}
                                    )
                                  ]
                                  spids: [23998 23999 24009 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [24025 24032 24034 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:xrpath)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$xrpath') <' '> 
                                                ($ Id.VSub_DollarName '$dir')
                                              )
                                            }
                                          spids: [24040]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24037 24038 24047 -1]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [23942 23944 24056 -1]
                        )
                        (case_arm
                          pat_list: [{<-shared>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [24060 24061 24071 -1]
                        )
                        (case_arm
                          pat_list: [{<-shrext>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<shrext>}
                                  spids: [24079]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24075 24076 24086 -1]
                        )
                        (case_arm
                          pat_list: [{<-static>} {<-static-libtool-libs>}]
                          action: [(command.ControlFlow token:<Id.ControlFlow_Continue continue>)]
                          spids: [24090 24095 24121 -1]
                        )
                        (case_arm
                          pat_list: [{<-thread-safe>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:thread_safe)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [24129]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24125 24126 24136 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-info>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [24144]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24140 24141 24151 -1]
                        )
                        (case_arm
                          pat_list: [{<-version-number>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<vinfo>}
                                  spids: [24159]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:vinfo_number)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [24163]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24155 24156 24170 -1]
                        )
                        (case_arm
                          pat_list: [{<-weak>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<weak>}
                                  spids: [24178]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24174 24175 24185 -1]
                        )
                        (case_arm
                          pat_list: [{<-Wc> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <'-Wc,'>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [24209]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [24213]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                      spids: [24216]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <','>)}
                                  spids: [24222]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: flag
                              iter_words: [{($ Id.VSub_DollarName '$args')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                          spids: [24240]
                                        )
                                      ]
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$flag'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:arg)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$arg') <' '> 
                                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                              )
                                            }
                                          spids: [24253]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                              )
                                            }
                                          spids: [24261]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                  spids: [24272]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [24292]
                                )
                              ]
                            )
                          ]
                          spids: [24189 24192 24296 -1]
                        )
                        (case_arm
                          pat_list: [{<-Wl> <Id.Lit_Comma ','> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <'-Wl,'>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:args)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [24320]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [24324]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                      spids: [24327]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <','>)}
                                  spids: [24333]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: flag
                              iter_words: [{($ Id.VSub_DollarName '$args')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                          spids: [24351]
                                        )
                                      ]
                                    )
                                    (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$flag'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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: [24364]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compiler_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                ($ Id.VSub_DollarName '$wl') ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                              )
                                            }
                                          spids: [24373]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$linker_flags') <' '> 
                                                ($ Id.VSub_DollarName '$func_quote_for_eval_result')
                                              )
                                            }
                                          spids: [24382]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                  spids: [24393]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <' '>)} {(SQ )} 
                              {(DQ ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [24413]
                                )
                              ]
                            )
                          ]
                          spids: [24300 24303 24417 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xcompiler>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcompiler>}
                                  spids: [24425]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24421 24422 24432 -1]
                        )
                        (case_arm
                          pat_list: [{<-Xlinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xlinker>}
                                  spids: [24440]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24436 24437 24447 -1]
                        )
                        (case_arm
                          pat_list: [{<-XCClinker>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:prev)
                                  op: assign_op.Equal
                                  rhs: {<xcclinker>}
                                  spids: [24455]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24451 24452 24462 -1]
                        )
                        (case_arm
                          pat_list: [{<-msg_> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                                  spids: [24482]
                                )
                              ]
                            )
                          ]
                          spids: [24470 24472 24488 -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_Other '@'> <Id.Lit_Star '*'>}
                            {<-tp> <Id.Lit_Equals '='> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                                  spids: [24614]
                                )
                              ]
                            )
                            (C {<func_append>} {<compile_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (C {<func_append>} {<finalize_command>} 
                              {(DQ <' '> ($ Id.VSub_DollarName '$arg'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compiler_flags)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [24640]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [24536 24604 24651 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>} {<Id.Lit_Other '+'> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                                  spids: [24676]
                                )
                              ]
                            )
                          ]
                          spids: [24659 24666 24682 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:objs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$objs') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [24696]
                                )
                              ]
                            )
                          ]
                          spids: [24686 24689 24704 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:pic_object)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [24734]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:non_pic_object)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [24737]
                                        )
                                      ]
                                    )
                                    (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$arg') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [24753 24801]
                                        )
                                      ]
                                    )
                                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$arg'))} {(DQ <'/'>)} {(DQ )})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:xdir)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                          spids: [24836]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:pic_object)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$xdir') 
                                                        ($ Id.VSub_DollarName '$pic_object')
                                                      )
                                                    }
                                                  spids: [24864]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [
                                                            (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
                                                                      name: dlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$dlfiles'
                                                                        ) <' '> ($ Id.VSub_DollarName '$pic_object')
                                                                      )
                                                                    }
                                                                  spids: [24916]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:prev)
                                                                  op: assign_op.Equal
                                                                  rhs: (word.Empty)
                                                                  spids: [24924]
                                                                )
                                                              ]
                                                            )
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [24888 24913]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:prev)
                                                              op: assign_op.Equal
                                                              rhs: {<dlprefiles>}
                                                              spids: [24937]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [24872 24885]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:dlprefiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName '$dlprefiles') <' '> ($ Id.VSub_DollarName '$pic_object')
                                                              )
                                                            }
                                                          spids: [24972]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:prev)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [24980]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [24952 24965]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<libobjs>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:arg)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                                  spids: [25001]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [24843 24857]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:non_pic_object)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$xdir') 
                                                        ($ Id.VSub_DollarName '$non_pic_object')
                                                      )
                                                    }
                                                  spids: [25036]
                                                )
                                              ]
                                            )
                                            (C {<func_append>} {<non_pic_objects>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:arg)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$non_pic_object'
                                                                )
                                                              )
                                                            }
                                                          spids: [25085]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [25058 25082]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [25015 25029]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:non_pic_object)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$pic_object'))}
                                              spids: [25105]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [24722 24731]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$arg'))} 
                                          {(DQ <'/'>)} {(DQ )}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:xdir)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                              spids: [25157]
                                            )
                                          ]
                                        )
                                        (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:pic_object)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$xdir') 
                                                  ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$func_lo2o_result')
                                                }
                                              spids: [25171]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:non_pic_object)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$xdir') 
                                                  ($ Id.VSub_DollarName '$func_lo2o_result')
                                                }
                                              spids: [25178]
                                            )
                                          ]
                                        )
                                        (C {<func_append>} {<libobjs>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$pic_object'))}
                                        )
                                        (C {<func_append>} {<non_pic_objects>} 
                                          {(DQ <' '> ($ Id.VSub_DollarName '$non_pic_object'))}
                                        )
                                      ]
                                      spids: [25131 25136]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_fatal_error>} 
                                      {
                                        (DQ 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) ($ Id.VSub_DollarName '$arg') <'\' is not a valid libtool object'>
                                        )
                                      }
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [24708 24710 25221 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$deplibs') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [25235]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:old_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$old_deplibs') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [25243]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [25225 25228 25254 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:dlfiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$dlfiles') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [25288]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [25296]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25268 25281]
                                )
                                (if_arm
                                  cond: [
                                    (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 name:dlprefiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                                ($ Id.VSub_DollarName '$arg')
                                              )
                                            }
                                          spids: [25319]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:prev)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [25327]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25299 25312]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:deplibs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$deplibs') <' '> 
                                            ($ Id.VSub_DollarName '$arg')
                                          )
                                        }
                                      spids: [25333]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [25258 25260 25347 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$arg'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:arg)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_quote_for_eval_result'))}
                                  spids: [25374]
                                )
                              ]
                            )
                          ]
                          spids: [25355 25356 25380 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [25394 25405]
                        )
                      ]
                    )
                  ]
                )
            )
            (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 '\\`'>) 
                      ($ Id.VSub_DollarName '$prevarg') <'\' option requires an argument'>
                    )
                  }
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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>} 
                      {
                        (DQ <'arg='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                          ($ Id.VSub_DollarName '$export_dynamic_flag_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                        )
                      }
                    )
                    (C {<func_append>} {<compile_command>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                    (C {<func_append>} {<finalize_command>} {(DQ <' '> ($ Id.VSub_DollarName '$arg'))})
                  ]
                  spids: [25461 25484]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:oldlibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25521]
                )
              ]
            )
            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$output'))})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:outputname)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                  spids: [25535]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libobjs_save)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                  spids: [25541]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath_var'))})
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [
                    (C {<eval>} 
                      {<Id.Lit_VarLike 'shlib_search_path='> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <ECHO>
                      } 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\$'>
                        ) <Id.Lit_LBrace '{'> ($ Id.VSub_DollarName '$shlibpath_var') <Id.Lit_RBrace '}'> 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\"'>
                        )
                      } {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\|'>)} 
                      {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <SED>} {(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) <'s/'> <Id.Lit_Colon ':'> <'/'>} 
                      {<'/g'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''>) 
                        (word_part.EscapedLiteral
                          token: <Id.Lit_EscapedChar '\\`'>
                        )
                      }
                    )
                  ]
                  spids: [25548 25559]
                )
              ]
              else_action: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:shlib_search_path)
                      op: assign_op.Equal
                      rhs: (word.Empty)
                      spids: [25598]
                    )
                  ]
                )
              ]
            )
            (C {<eval>} 
              {
                (DQ <'sys_lib_search_path='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$sys_lib_search_path_spec') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {<eval>} 
              {
                (DQ <'sys_lib_dlsearch_path='> 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$sys_lib_dlsearch_path_spec') 
                  (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                )
              }
            )
            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$output'))} {(DQ <'/'>)} {(DQ )})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:output_objdir)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (DQ ($ Id.VSub_DollarName '$func_dirname_result') 
                        ($ Id.VSub_DollarName '$objdir')
                      )
                    }
                  spids: [25639]
                )
              ]
            )
            (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: [25669 25671 25681 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<oldlib>}
                          spids: [25689]
                        )
                      ]
                    )
                  ]
                  spids: [25684 25687 25692 -1]
                )
                (case_arm
                  pat_list: [
                    {<Id.Lit_Star '*'> <.lo>}
                    {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                  ]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<obj>}
                          spids: [25705]
                        )
                      ]
                    )
                  ]
                  spids: [25695 25703 25708 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<lib>}
                          spids: [25715]
                        )
                      ]
                    )
                  ]
                  spids: [25711 25713 25718 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:linkmode)
                          op: assign_op.Equal
                          rhs: {<prog>}
                          spids: [25724]
                        )
                      ]
                    )
                  ]
                  spids: [25721 25722 25727 -1]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:specialdeplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25737]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25741]
                )
              ]
            )
            (command.ForEach
              iter_name: deplib
              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:specialdeplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$specialdeplibs') <' '> 
                                                ($ Id.VSub_DollarName '$deplib')
                                              )
                                            }
                                          spids: [25792]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [25783 25790 25799 -1]
                                )
                              ]
                            )
                          ]
                          spids: [25764 25770]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:libs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$libs') <' '> ($ Id.VSub_DollarName '$deplib'))
                            }
                          spids: [25808]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 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: [25836]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pre_post_deps)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [25861]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {($ Id.VSub_DollarName '$opt_duplicate_compiler_generated_deps')})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ForEach
                              iter_name: pre_post_dep
                              iter_words: [
                                {($ Id.VSub_DollarName '$predeps')}
                                {($ Id.VSub_DollarName '$postdeps')}
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$pre_post_deps') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$pre_post_dep') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:specialdeplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$specialdeplibs') 
                                                        <' '> ($ Id.VSub_DollarName '$pre_post_deps')
                                                      )
                                                    }
                                                  spids: [25905]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [25896 25903 25912 -1]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:pre_post_deps)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$pre_post_deps') <' '> 
                                                ($ Id.VSub_DollarName '$pre_post_dep')
                                              )
                                            }
                                          spids: [25918]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [25864 25869]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:pre_post_deps)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [25932]
                        )
                      ]
                    )
                  ]
                  spids: [25820 25833]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25939]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25942]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:newlib_search_path)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25945]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:need_relink)
                  op: assign_op.Equal
                  rhs: {<no>}
                  spids: [25948]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:notinst_deplibs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25955]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:notinst_path)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [25961]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$linkmode')}
              arms: [
                (case_arm
                  pat_list: [{<lib>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv dlpreopen link'>)}
                          spids: [25979]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: file
                      iter_words: [
                        {($ Id.VSub_DollarName '$dlfiles')}
                        {($ Id.VSub_DollarName '$dlprefiles')}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$file')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  spids: [26006 26008 26010 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {<func_fatal_help>} 
                                      {
                                        (DQ <'libraries can '> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\`'>
                                          ) <'-dlopen\' only libtool libraries: '> ($ Id.VSub_DollarName '$file')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [26013 26014 26027 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                  ]
                  spids: [25975 25976 26036 -1]
                )
                (case_arm
                  pat_list: [{<prog>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_deplibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [26043]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [26046]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:alldeplibs)
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [26049]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:newdlfiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [26053]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:newdlprefiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [26056]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <'conv scan dlopen dlpreopen link'>)}
                          spids: [26059]
                        )
                      ]
                    )
                  ]
                  spids: [26039 26040 26065 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:passes)
                          op: assign_op.Equal
                          rhs: {(DQ <conv>)}
                          spids: [26071]
                        )
                      ]
                    )
                  ]
                  spids: [26068 26069 26077 -1]
                )
              ]
            )
            (command.ForEach
              iter_name: pass
              iter_words: [{($ Id.VSub_DollarName '$passes')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:tmp_deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [26132]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: deplib
                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$tmp_deplibs')
                                              )
                                            }
                                          spids: [26147]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$tmp_deplibs'))}
                                  spids: [26158]
                                )
                              ]
                            )
                          ]
                          spids: [26104 26121]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:libs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$deplibs'))}
                                  spids: [26205]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [26211]
                                )
                              ]
                            )
                          ]
                          spids: [26168 26202]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:libs)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$dlfiles'))}
                                          spids: [26243]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26240 26241 26248 -1]
                                )
                                (case_arm
                                  pat_list: [{<dlpreopen>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libs)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$dlprefiles'))}
                                          spids: [26254]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26251 26252 26259 -1]
                                )
                                (case_arm
                                  pat_list: [{<link>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplibs') <' %DEPLIBS% '> 
                                                ($ Id.VSub_DollarName '$dependency_libs')
                                              )
                                            }
                                          spids: [26265]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26262 26263 26272 -1]
                                )
                              ]
                            )
                          ]
                          spids: [26217 26230]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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_name: lib
                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [26321]
                                        )
                                      ]
                                    )
                                    (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: [26331 26333 26341 -1]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$deplib'))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplib_base)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_basename_result')}
                                                  spids: [26375]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$weak_libs') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$deplib_base') 
                                                        <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [26390 26397 26399 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplibs') 
                                                                <' '> ($ Id.VSub_DollarName '$deplib')
                                                              )
                                                            }
                                                          spids: [26405]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [26402 26403 26412 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$dlprefiles'))}
                                  spids: [26424]
                                )
                              ]
                            )
                          ]
                          spids: [26281 26298]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:save_deplibs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$deplibs'))}
                                  spids: [26453]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [26459]
                                )
                              ]
                            )
                          ]
                          spids: [26433 26446]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$libs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lib)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [26478]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:found)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [26481]
                                )
                              ]
                            )
                            (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: [
                                            (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 name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [26530]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [26538]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [26510 26527]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:compiler_flags)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$compiler_flags') <' '> 
                                                    ($ Id.VSub_DollarName '$deplib')
                                                  )
                                                }
                                              spids: [26549]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (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 '*'>
                                                        }
                                                      ]
                                                      spids: [26584 26591 26593 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: new_inherited_linker_flags
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                                    ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                  )
                                                                }
                                                              spids: [26600]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [26596 26598 26607 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [26557 26571]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [26492 26507 26622 -1]
                                )
                                (case_arm
                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) <'-l\' is ignored for archives/objects'>
                                                )
                                              }
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [26630 26657]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ <-l>)} {(SQ )} 
                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [26688]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 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: [26708]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [26692 26705]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:searchdirs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$newlib_search_path') 
                                                    <' '> ($ Id.VSub_DollarName '$lib_search_path') <' '> ($ Id.VSub_DollarName '$sys_lib_search_path') <' '> 
                                                    ($ Id.VSub_DollarName '$shlib_search_path')
                                                  )
                                                }
                                              spids: [26725]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: searchdir
                                      iter_words: [{($ Id.VSub_DollarName '$searchdirs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ForEach
                                              iter_name: search_ext
                                              iter_words: [
                                                {<.la>}
                                                {($ Id.VSub_DollarName '$std_shrext')}
                                                {<.so>}
                                                {<.a>}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lib)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$searchdir') 
                                                                <'/lib'> (${ Id.VSub_Name name) (${ Id.VSub_Name search_ext)
                                                              )
                                                            }
                                                          spids: [26774]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-f>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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
                                                                              name: found
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<yes>}
                                                                          spids: [26819]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [26801 26816]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: found
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: {<no>}
                                                                      spids: [26826]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                            (command.ControlFlow
                                                              token: <Id.ControlFlow_Break break>
                                                              arg_word: {<2>}
                                                            )
                                                          ]
                                                          spids: [26787 26798]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [
                                                    (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
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                              )
                                                            }
                                                          spids: [26888]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                              )
                                                            }
                                                          spids: [26896]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [26868 26885]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$deplibs')
                                                          )
                                                        }
                                                      spids: [26907]
                                                    )
                                                  ]
                                                )
                                                (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
                                                              name: newdependency_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$newdependency_libs')
                                                              )
                                                            }
                                                          spids: [26927]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [26847 26861]
                                        )
                                      ]
                                      else_action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (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: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<func_lalib_p>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$lib'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: library_names
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (word.Empty)
                                                                      spids: [27010]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: old_library
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: (word.Empty)
                                                                      spids: [27013]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<func_source>} 
                                                                  {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                                )
                                                                (command.ForEach
                                                                  iter_name: l
                                                                  iter_words: [
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$old_library'
                                                                      )
                                                                    }
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$library_names'
                                                                      )
                                                                    }
                                                                  ]
                                                                  do_arg_iter: F
                                                                  body: 
                                                                    (command.DoGroup
                                                                      children: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: ll
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName '$l'
                                                                                    )
                                                                                  )
                                                                                }
                                                                              spids: [27037]
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                    )
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} 
                                                                              {
                                                                                (DQ <X> 
                                                                                  ($ 
Id.VSub_DollarName '$ll'
                                                                                  )
                                                                                )
                                                                              } {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$old_library'))}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: found
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<no>}
                                                                              spids: [27070]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (C {<func_dirname>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$lib'
                                                                              )
                                                                            )
                                                                          } {(DQ )} {(DQ <.>)}
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: ladir
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName '$func_dirname_result'
                                                                                    )
                                                                                  )
                                                                                }
                                                                              spids: [27088]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: lib
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$ladir'
                                                                                  ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                }
                                                                              spids: [27094]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.If
                                                                          arms: [
                                                                            (if_arm
                                                                              cond: [
                                                                                (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
                                                                                          name: 
compile_deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$deplib'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                                          )
                                                                                        }
                                                                                      spids: [27120]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: 
finalize_deplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$deplib'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                                          )
                                                                                        }
                                                                                      spids: [27128]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              spids: [27100 27117]
                                                                            )
                                                                          ]
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: deplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$deplib'
                                                                                        ) <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                                      )
                                                                                    }
                                                                                  spids: [27139]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (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
                                                                                          name: 
newdependency_libs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$deplib'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$newdependency_libs')
                                                                                          )
                                                                                        }
                                                                                      spids: [27159]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.ControlFlow
                                                                          token: 
                                                                            <
Id.ControlFlow_Continue continue
                                                                            >
                                                                        )
                                                                      ]
                                                                      spids: [27046 27064]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              spids: [26998 27007]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [26988 26995 27179 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      spids: [27182 27183 27185 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [26955 26972]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [26625 26627 27197 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.ltframework>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [27228]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [27236]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [27208 27225]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [27247]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (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 '*'>
                                                        }
                                                      ]
                                                      spids: [27282 27289 27291 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: new_inherited_linker_flags
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                                    ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                  )
                                                                }
                                                              spids: [27298]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [27294 27296 27305 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [27255 27269]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27203 27205 27320 -1]
                                )
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$linkmode')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<lib>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [27339]
                                                )
                                              ]
                                            )
                                            (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 name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$newdependency_libs')
                                                      )
                                                    }
                                                  spids: [27362]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newlib_search_path)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$newlib_search_path') <' '> ($ Id.VSub_DollarName '$func_stripname_result')
                                                      )
                                                    }
                                                  spids: [27384]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [27335 27336 27392 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [27415]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Continue continue>
                                                    )
                                                  ]
                                                  spids: [27399 27412]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [27445]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [27429 27442]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$compile_deplibs')
                                                          )
                                                        }
                                                      spids: [27456]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$finalize_deplibs')
                                                          )
                                                        }
                                                      spids: [27464]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newlib_search_path)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$newlib_search_path') <' '> ($ Id.VSub_DollarName '$func_stripname_result')
                                                      )
                                                    }
                                                  spids: [27489]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [27395 27396 27497 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                  ) <'-L\' is ignored for archives/objects'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [27500 27501 27512 -1]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27323 27325 27524 -1]
                                )
                                (case_arm
                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:dir)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [27565]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {(DQ ($ Id.VSub_DollarName '$xrpath') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [27583 27590 27592 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:xrpath)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$xrpath') 
                                                                <' '> ($ Id.VSub_DollarName '$dir')
                                                              )
                                                            }
                                                          spids: [27598]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [27595 27596 27605 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [27535 27548]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [27614]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [27530 27532 27625 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:lib)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                          spids: [27632]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [27628 27630 27637 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$libext')}]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [27662]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [27646 27659]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$linkmode')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<lib>}]
                                          action: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$dlpreconveniencelibs') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [27706 27713 27715 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:valid_a_lib)
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [27722]
                                                        )
                                                      ]
                                                    )
                                                    (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 {<Id.KW_Set set>} {<dummy>} 
                                                                  {
                                                                    ($ Id.VSub_DollarName 
'$deplibs_check_method'
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                            (C {<shift>})
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: match_pattern_regex
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {<expr>} 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$deplibs_check_method'
                                                                                )
                                                                              )
                                                                            } {<Id.Lit_Colon ':'>} 
                                                                            {
                                                                              (DQ 
                                                                                ($ Id.VSub_Number 
'$1'
                                                                                ) <' '> <Id.Lit_Other '\\'> <'(.*'> <Id.Lit_Other '\\'> <')'>
                                                                              )
                                                                            }
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [27748]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.Pipeline
                                                                          children: [
                                                                            (command.Simple
                                                                              words: [
                                                                                {<eval>}
                                                                                {
                                                                                  (DQ 
                                                                                    (word_part.EscapedLiteral
                                                                                      token: 
                                                                                        <
Id.Lit_EscapedChar '\\$'
                                                                                        >
                                                                                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ($ Id.VSub_DollarName '$deplib') 
                                                                                    (word_part.EscapedLiteral
                                                                                      token: 
                                                                                        <
Id.Lit_EscapedChar '\\"'
                                                                                        >
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'2>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 2
                                                                                    )
                                                                                  arg: {<'/dev/null'>}
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$SED'
                                                                                )
                                                                              } {<10q>}
                                                                            )
                                                                            (command.Simple
                                                                              words: [
                                                                                {
                                                                                  ($ 
Id.VSub_DollarName '$EGREP'
                                                                                  )
                                                                                }
                                                                                {
                                                                                  (DQ 
                                                                                    ($ 
Id.VSub_DollarName '$match_pattern_regex'
                                                                                    )
                                                                                  )
                                                                                }
                                                                              ]
                                                                              redirects: [
                                                                                (redir
                                                                                  op: 
                                                                                    <Id.Redir_Great 
'>'
                                                                                    >
                                                                                  loc: 
                                                                                    (redir_loc.Fd
                                                                                      fd: 1
                                                                                    )
                                                                                  arg: {<'/dev/null'>}
                                                                                )
                                                                              ]
                                                                              do_fork: T
                                                                            )
                                                                          ]
                                                                          negated: F
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: valid_a_lib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {<yes>}
                                                                          spids: [27814]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [27775 27811]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [27733 27735 27821 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<pass_all>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: valid_a_lib
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [27828]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [27824 27825 27832 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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 {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: Trying to link with static lib archive '
                                                                  > ($ Id.VSub_DollarName '$deplib') <.>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because the file extensions .'
                                                                  > ($ Id.VSub_DollarName '$libext') <' of this argument makes me believe'>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** that it is just a static archive that I should not use here.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [27838 27852]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<echo>})
                                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                                          {
                                                            (DQ 
                                                              <
'*** Warning: Linking the shared library '
                                                              > ($ Id.VSub_DollarName '$output') <' against the'>
                                                            )
                                                          }
                                                        )
                                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                                          {
                                                            (DQ <'*** static library '> 
                                                              ($ Id.VSub_DollarName '$deplib') <' is not portable!'>
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$deplib') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                  )
                                                                }
                                                              spids: [27928]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [27718 27719 27939 -1]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [27683 27684 27948 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<prog>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [27972]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [27955 27969]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$compile_deplibs')
                                                          )
                                                        }
                                                      spids: [27983]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName '$finalize_deplibs')
                                                          )
                                                        }
                                                      spids: [27991]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [27951 27952 28005 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [27640 27643 28014 -1]
                                )
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <.lo>}
                                    {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [28047]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [28031 28044]
                                        )
                                        (if_arm
                                          cond: [
                                            (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: [
                                                    (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 name:newdlprefiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$newdlprefiles'
                                                                ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                              )
                                                            }
                                                          spids: [28120]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: compile_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                              )
                                                            }
                                                          spids: [28128]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: finalize_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                              )
                                                            }
                                                          spids: [28136]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [28071 28109]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdlfiles)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$newdlfiles') 
                                                            <' '> ($ Id.VSub_DollarName '$deplib')
                                                          )
                                                        }
                                                      spids: [28147]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [28055 28068]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28020 28028 28164 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Other '%'> <DEPLIBS> <Id.Lit_Other '%'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:alldeplibs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [28173]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28167 28170 28180 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [28190 28213]
                                )
                              ]
                              else_action: [
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ <'cannot find the library '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$lib') <'\' or unhandled argument '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$deplib') <'\''>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DPipe]
                              children: [
                                (C {<func_lalib_unsafe_p>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                      ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                    )
                                  }
                                )
                              ]
                            )
                            (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$lib'))} {(DQ )} {(DQ <.>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:ladir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                                  spids: [28276]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlname)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28283]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlopen)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28286]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dlpreopen)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28289]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28292]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:library_names)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28295]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:old_library)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28298]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:inherited_linker_flags)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28301]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:installed)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [28312]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:shouldnotlink)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [28316]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:avoidtemprpath)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28320]
                                )
                              ]
                            )
                            (C {<func_source>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$inherited_linker_flags'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_inherited_linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$inherited_linker_flags'
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {
                                                          (SQ 
                                                            <
's/-framework \\([^ $]*\\)/\\1.ltframework/g'
                                                            >
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [28355]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: tmp_inherited_linker_flag
                                      iter_words: [
                                        {($ Id.VSub_DollarName '$tmp_inherited_linker_flags')}
                                      ]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                    ) <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName 
'$tmp_inherited_linker_flag'
                                                        ) <' '>
                                                      ) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [28404 28411 28413 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              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: [28419]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [28416 28417 28425 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [28341 28352]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$dependency_libs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [28437]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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
                                              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 _>
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      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 name:dlfiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dlfiles') <' '> 
                                                    ($ Id.VSub_DollarName '$dlopen')
                                                  )
                                                }
                                              spids: [28543]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (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 name:dlprefiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                                    ($ Id.VSub_DollarName '$dlpreopen')
                                                  )
                                                }
                                              spids: [28561]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [28464 28530]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [28593]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 '\\`'>
                                                          ) ($ Id.VSub_DollarName '$lib') <'\''>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [28615 28626]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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: [28646]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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: [28658]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [28601 28612]
                                        )
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$lib') <'\' is not a convenience library'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [28670 28697]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [28712]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [28727]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                                      name: specialdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$specialdeplibs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                      )
                                                                    }
                                                                  spids: [28763]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [28754 28761 28770 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [28735 28741]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:tmp_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '> 
                                                        ($ Id.VSub_DollarName '$deplib')
                                                      )
                                                    }
                                                  spids: [28779]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28573 28586]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:linklib)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [28805]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: l
                              iter_words: [
                                {($ Id.VSub_DollarName '$old_library')}
                                {($ Id.VSub_DollarName '$library_names')}
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linklib)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$l'))}
                                          spids: [28822]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                          ) ($ Id.VSub_DollarName '$lib') <'\''>
                                        )
                                      }
                                    )
                                  ]
                                  spids: [28831 28842]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$lib') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [28879 28890]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:dlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                                        ($ Id.VSub_DollarName '$lib') <' '> ($ Id.VSub_DollarName '$dependency_libs')
                                                      )
                                                    }
                                                  spids: [28963]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [28906 28944]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlfiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$newdlfiles') <' '> 
                                                    ($ Id.VSub_DollarName '$lib')
                                                  )
                                                }
                                              spids: [28976]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [28863 28876]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$ladir')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_LBracket '['> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\\\'>
                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_LBracket '['> <A-Za-z> <Id.Lit_RBracket ']'> 
                                      <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> 
                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:abs_ladir)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$ladir'))}
                                          spids: [29027]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29008 29025 29032 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:abs_ladir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.AndOr
                                                    ops: [Id.Op_DAmp]
                                                    children: [
                                                      (C {<cd>} {(DQ ($ Id.VSub_DollarName '$ladir'))})
                                                      (C {<pwd>})
                                                    ]
                                                  )
                                              )
                                            }
                                          spids: [29039]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$ladir') <'\''>
                                                )
                                              }
                                            )
                                            (C {<func_warning>} 
                                              {
                                                (DQ 
                                                  <
'passing it literally to the linker, although it might fail'
                                                  >
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:abs_ladir)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$ladir'))}
                                                  spids: [29086]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29055 29066]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29035 29036 29095 -1]
                                )
                              ]
                            )
                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$lib'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:laname)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                  spids: [29108]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$lib') <'\' was moved.'>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$ladir'))}
                                                  spids: [29176]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:absdir)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$abs_ladir'))}
                                                  spids: [29182]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$abs_ladir'))}
                                                  spids: [29188]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29136 29163]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dir)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                              spids: [29197]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:absdir)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                              spids: [29203]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (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 name:avoidtemprpath)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [29225]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29119 29133]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {<Id.KW_Bang '!'>} {<-f>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$ladir') <'/'> 
                                                      ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                    )
                                                  }
                                                )
                                                (C {<test>} {<-f>} 
                                                  {
                                                    (DQ ($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                                      ($ Id.VSub_DollarName '$linklib')
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dir)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$ladir'))}
                                              spids: [29264]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:absdir)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$abs_ladir'))}
                                              spids: [29270]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:notinst_path)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$notinst_path') <' '> 
                                                    ($ Id.VSub_DollarName '$abs_ladir')
                                                  )
                                                }
                                              spids: [29280]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [29232 29261]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$ladir') <'/'> 
                                                ($ Id.VSub_DollarName '$objdir')
                                              )
                                            }
                                          spids: [29291]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:absdir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                                ($ Id.VSub_DollarName '$objdir')
                                              )
                                            }
                                          spids: [29299]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:notinst_path)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$notinst_path') <' '> 
                                                ($ Id.VSub_DollarName '$abs_ladir')
                                              )
                                            }
                                          spids: [29311]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.la>)} 
                              {(DQ ($ Id.VSub_DollarName '$laname'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [29343]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 '\\`'>) ($ Id.VSub_DollarName '$lib') <'\''>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [29368 29391]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$newdlprefiles') 
                                                        <' '> ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                                      )
                                                    }
                                                  spids: [29429]
                                                )
                                              ]
                                            )
                                            (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
                                                          name: dlpreconveniencelibs
                                                        )
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$dlpreconveniencelibs'
                                                            ) <' '> ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                                          )
                                                        }
                                                      spids: [29459]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29415 29426]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$newdlprefiles') 
                                                        <' '> ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$dlname')
                                                      )
                                                    }
                                                  spids: [29487]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29473 29484]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$newdlprefiles') <' '> 
                                                    ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                  )
                                                }
                                              spids: [29500]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29352 29365]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libdir'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                      )
                                                    }
                                                  spids: [29554]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29538 29551]
                                        )
                                        (if_arm
                                          cond: [
                                            (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 name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [29584]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [29594]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29564 29581]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [29607]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [29520 29531]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:newlib_search_path)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$newlib_search_path') <' '> 
                                                ($ Id.VSub_DollarName '$ladir')
                                              )
                                            }
                                          spids: [29658]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$lib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [29666]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linkalldeplibs)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [29675]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:linkalldeplibs)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [29719]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29679 29716]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [29727]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {(SQ <-L>)} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: newlib_search_path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$newlib_search_path'
                                                                ) <' '> ($ Id.VSub_DollarName '$func_stripname_result')
                                                              )
                                                            }
                                                          spids: [29767]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29749 29751 29775 -1]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [29801]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29785 29798]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                            ($ Id.VSub_DollarName 
'$newdependency_libs'
                                                            )
                                                          )
                                                        }
                                                      spids: [29820]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                                      name: specialdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$specialdeplibs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                      )
                                                                    }
                                                                  spids: [29859]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [29850 29857 29866 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29831 29837]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:tmp_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '> 
                                                        ($ Id.VSub_DollarName '$deplib')
                                                      )
                                                    }
                                                  spids: [29875]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Continue continue>
                                    )
                                  ]
                                  spids: [29629 29655]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$library_names'))}
                                                    )
                                                    (BraceGroup
                                                      children: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe]
                                                              children: [
                                                                (BraceGroup
                                                                  children: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.AndOr
                                                                          ops: [Id.Op_DPipe]
                                                                          children: [
                                                                            (C {<test>} 
                                                                              {
                                                                                (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 _>
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$old_library'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 '*'>
                                                            }
                                                          ]
                                                          spids: [30027 30033 30035 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: temp_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$temp_rpath'
                                                                        ) ($ Id.VSub_DollarName '$absdir') <':'>
                                                                      )
                                                                    }
                                                                  spids: [30041]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30038 30039 30048 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [29988 30010]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$absdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [30081 30088 30090 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$compile_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$absdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [30107 30114 30116 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: compile_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$compile_rpath'
                                                                        ) <' '> ($ Id.VSub_DollarName '$absdir')
                                                                      )
                                                                    }
                                                                  spids: [30122]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30119 30120 -1 30130]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30093 30094 30133 -1]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [30150 30157 30159 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_rpath') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [30176 30183 30185 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: finalize_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$finalize_rpath'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir')
                                                                      )
                                                                    }
                                                                  spids: [30191]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30188 30189 -1 30199]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30162 30163 30202 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [29919 29981]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName '$alldeplibs'))} {<Id.Lit_Equals '='>} {<yes>}
                                                    )
                                                    (BraceGroup
                                                      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
                                                                  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 _>
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Continue continue>
                                            )
                                          ]
                                          spids: [30215 30275]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [29899 29916]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_static)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [30292]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:use_static_libs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$prefer_static_libs')}
                                  spids: [30299]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:use_static_libs)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [30331]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30303 30328]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$library_names'))}
                                            )
                                            (BraceGroup
                                              children: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DPipe]
                                                      children: [
                                                        (C {<test>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$use_static_libs'
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {<no>}
                                                        )
                                                        (C {<test>} {<-z>} 
                                                          {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:notinst_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$notinst_deplibs') 
                                                        <' '> ($ Id.VSub_DollarName '$lib')
                                                      )
                                                    }
                                                  spids: [30409]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:need_relink)
                                                  op: assign_op.Equal
                                                  rhs: {<no>}
                                                  spids: [30417]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30387 30402 30421 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                              name: notinst_deplibs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$notinst_deplibs'
                                                                ) <' '> ($ Id.VSub_DollarName '$lib')
                                                              )
                                                            }
                                                          spids: [30444]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:need_relink)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [30452]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30428 30441]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30424 30425 30459 -1]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlopenmodule)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [30478]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dlpremoduletest
                                      iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {
                                                            (DQ <X> 
                                                              ($ Id.VSub_DollarName 
'$dlpremoduletest'
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {(DQ <X> ($ Id.VSub_DollarName '$lib'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:dlopenmodule)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$dlpremoduletest'
                                                                )
                                                              )
                                                            }
                                                          spids: [30515]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Break break>
                                                    )
                                                  ]
                                                  spids: [30495 30512]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 {<echo>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [30571 30584]
                                                )
                                              ]
                                              else_action: [
                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                  {
                                                    (DQ <'*** Warning: Linking the shared library '> 
                                                      ($ Id.VSub_DollarName '$output') <' against the loadable module'>
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ <'*** '> ($ Id.VSub_DollarName '$linklib') 
                                                  <' is not portable!'>
                                                )
                                              }
                                            )
                                          ]
                                          spids: [30530 30565]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '*'>
                                                    }
                                                  ]
                                                  spids: [30675 30682 30684 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$compile_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$absdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [30701 30708 30710 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: compile_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$compile_rpath'
                                                                        ) <' '> ($ Id.VSub_DollarName '$absdir')
                                                                      )
                                                                    }
                                                                  spids: [30716]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30713 30714 -1 30724]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30687 30688 30727 -1]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName '$sys_lib_dlsearch_path') <' '>
                                                  )
                                                }
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [30744 30751 30753 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$finalize_rpath') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [30770 30777 30779 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: finalize_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$finalize_rpath'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir')
                                                                      )
                                                                    }
                                                                  spids: [30785]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30782 30783 -1 30793]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30756 30757 30796 -1]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30623 30649]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$old_archive_from_expsyms_cmds'
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<Id.KW_Set set>} {<dummy>} 
                                              {($ Id.VSub_DollarName '$library_names')}
                                            )
                                            (C {<shift>})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:realname)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                                  spids: [30834]
                                                )
                                              ]
                                            )
                                            (C {<shift>})
                                            (C {<eval>} 
                                              {
                                                (DQ <'libname='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:soname)
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName '$dlname'))}
                                                          spids: [30871]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [30857 30868]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (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 name:major)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                      )
                                                                    }
                                                                  spids: [30928]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: versuffix
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-> 
                                                                        ($ Id.VSub_DollarName 
'$major'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [30932]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [30902 30916 30939 -1]
                                                        )
                                                      ]
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'soname='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) ($ Id.VSub_DollarName '$soname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [30877 30888]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:soname)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName '$realname'))}
                                                      spids: [30958]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:soroot)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$soname'))}
                                                  spids: [30972]
                                                )
                                              ]
                                            )
                                            (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$soroot'))})
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:soname)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$func_basename_result')
                                                      )
                                                    }
                                                  spids: [30985]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.dll>)} 
                                              {(DQ ($ Id.VSub_DollarName '$soname'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newlib)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {<libimp-> 
                                                      ($ Id.VSub_DollarName '$func_stripname_result') <.a>
                                                    }
                                                  spids: [31006]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [31017 31031]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'extracting exported symbol list from '> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\`'>
                                                      ) ($ Id.VSub_DollarName '$soname') <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName '$extract_expsyms_cmds')
                                                    )
                                                  } {(SQ <'exit $?'>)}
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [31068 31081]
                                                )
                                              ]
                                              else_action: [
                                                (C {<func_verbose>} 
                                                  {
                                                    (DQ <'generating import library for '> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\`'>
                                                      ) ($ Id.VSub_DollarName '$soname') <'\''>
                                                    )
                                                  }
                                                )
                                                (C {<func_execute_cmds>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$old_archive_from_expsyms_cmds'
                                                      )
                                                    )
                                                  } {(SQ <'exit $?'>)}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dir)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$output_objdir')}
                                                  spids: [31117]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:linklib)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$newlib')}
                                                  spids: [31121]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [30806 30817]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:add_shlibpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [31161]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_dir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [31164]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [31167]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lib_linked)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [31170]
                                                )
                                              ]
                                            )
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$hardcode_action')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<immediate>} {<unsupported>}]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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 name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                      )
                                                                    }
                                                                  spids: [31205]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {($ Id.VSub_DollarName '$host')}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sco3.2v5.0.> <Id.Lit_LBracket '['> <024> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [31230]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31220 31228 31236 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv4> <Id.Lit_Star '*'> <uw2> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [31248]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31239 31246 31254 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv5OpenUNIX> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-sysv5UnixWare7.> <Id.Lit_LBracket '['> <01> <Id.Lit_RBracket ']'> <.> <Id.Lit_LBracket '['> <10> 
                                                                      <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-unixware7> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: add_dir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ <-L> 
                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [31289]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31257 31287 31295 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> <-> 
                                                                      <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (command.Sentence
                                                                              child: 
                                                                                (command.Pipeline
                                                                                  children: [
                                                                                    (command.Simple
                                                                                      words: [
                                                                                        {
                                                                                          <
'/usr/bin/file'
                                                                                          >
                                                                                        }
                                                                                        {<-L>}
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$add'
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (redir
                                                                                          op: 
                                                                                            <
Id.Redir_Great '2>'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 2
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              <
'/dev/null'
                                                                                              >
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                    (command.Simple
                                                                                      words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$GREP'
                                                                                          )
                                                                                        }
                                                                                        {
                                                                                          (DQ 
                                                                                            <
': [^:]* bundle'
                                                                                            >
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (redir
                                                                                          op: 
                                                                                            <
Id.Redir_Great '>'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 1
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              <
'/dev/null'
                                                                                              >
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                  ]
                                                                                  negated: F
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                          action: [
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (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: [
                                                                                            (command.Sentence
                                                                                              child: 
                                                                                                (C 
                                                                                                  {
                                                                                                    <
test
                                                                                                    >
                                                                                                  } {<-z>} {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                                                                )
                                                                                              terminator: 
                                                                                                <
Id.Op_Semi _
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          action: [
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              }
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              } {(DQ <'*** And there doesn\'t seem to be a static archive available'>)}
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                <
echo
                                                                                                >
                                                                                              } {(DQ <'*** The link will probably fail, sorry'>)}
                                                                                            )
                                                                                          ]
                                                                                          spids: [
31374
31386
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                      else_action: [
                                                                                        (command.ShAssignment
                                                                                          pairs: [
                                                                                            (assign_pair
                                                                                              lhs: 
                                                                                                (sh_lhs_expr.Name
                                                                                                  name: 
add
                                                                                                )
                                                                                              op: 
assign_op.Equal
                                                                                              rhs: 
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName '$dir'
                                                                                                    ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                                  )
                                                                                                }
                                                                                              spids: [
31409
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [31344 31362]
                                                                                )
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (C {<test>} 
                                                                                          {<-n>} {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
add
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                                ) <'/'> ($ Id.VSub_DollarName '$old_library')
                                                                                              )
                                                                                            }
                                                                                          spids: [
31434
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [31420 31431]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [31315 31341]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31298 31304 -1 31448]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31189 31202]
                                                        )
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                              name: add_shlibpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [31481]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31474 31479 31486 -1]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-L> 
                                                                        ($ Id.VSub_DollarName '$dir')
                                                                      )
                                                                    }
                                                                  spids: [31492]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [31499]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31451 31464]
                                                        )
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$dir')
                                                                      )
                                                                    }
                                                                  spids: [31522]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [31528]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31506 31519]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:lib_linked)
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [31538]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31181 31186 31545 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<relink>}]
                                                  action: [
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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 name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                      )
                                                                    }
                                                                  spids: [31581]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31552 31578]
                                                        )
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                      name: add_dir
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-L> 
                                                                        ($ Id.VSub_DollarName 
'$absdir'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [31605]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<test>} {<-n>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [
                                                                    (command.Case
                                                                      to_match: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$libdir'
                                                                          )
                                                                        }
                                                                      arms: [
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_LBracket '['> 
                                                                              (word_part.EscapedLiteral
                                                                                token: 
                                                                                  <
Id.Lit_EscapedChar '\\\\'
                                                                                  >
                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      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: [31645]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [31637 31642 31654 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [31616 31627]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [31663]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31589 31602]
                                                        )
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                      name: add_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$dir')
                                                                      )
                                                                    }
                                                                  spids: [31686]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ <-l> 
                                                                        ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [31692]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31670 31683]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:lib_linked)
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [31702]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31548 31549 31709 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lib_linked)
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [31715]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31712 31713 31718 -1]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [31725 31739]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$add_shlibpath')
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {<Id.Lit_Colon ':'> 
                                                          ($ Id.VSub_DollarName '$compile_shlibpath') <Id.Lit_Colon ':'>
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <':'> 
                                                                ($ Id.VSub_DollarName 
'$add_shlibpath'
                                                                ) <':'>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [31776 31783 31785 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: compile_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$compile_shlibpath'
                                                                        ) ($ Id.VSub_DollarName '$add_shlibpath') <':'>
                                                                      )
                                                                    }
                                                                  spids: [31791]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [31788 31789 31798 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31753 31764]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$add_dir') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                  )
                                                                }
                                                              spids: [31833]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: compile_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName '$add') 
                                                                    <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                                  )
                                                                }
                                                              spids: [31851]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [31807 31820]
                                                )
                                              ]
                                              else_action: [
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add_dir') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [31872]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add') <' '> 
                                                                ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [31890]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (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 '*'>
                                                                }
                                                              ]
                                                              spids: [31951 31958 31960 -1]
                                                            )
                                                            (case_arm
                                                              pat_list: [{<Id.Lit_Star '*'>}]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: finalize_shlibpath
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$finalize_shlibpath'
                                                                            ) ($ Id.VSub_DollarName '$libdir') <':'>
                                                                          )
                                                                        }
                                                                      spids: [31966]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              spids: [31963 31964 31973 -1]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [31898 31939]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [31132 31158]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:add_shlibpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [32017]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add_dir)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [32020]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:add)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [32023]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:add)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$libdir') 
                                                                <'/'> ($ Id.VSub_DollarName '$linklib')
                                                              )
                                                            }
                                                          spids: [32059]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32030 32056]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (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 name:add_dir)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ <-L> 
                                                                ($ Id.VSub_DollarName '$libdir')
                                                              )
                                                            }
                                                          spids: [32083]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(DQ <-l> ($ Id.VSub_DollarName '$name'))}
                                                          spids: [32090]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32067 32080]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (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 '*'>
                                                            }
                                                          ]
                                                          spids: [32122 32129 32131 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: finalize_shlibpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$finalize_shlibpath'
                                                                        ) ($ Id.VSub_DollarName '$libdir') <':'>
                                                                      )
                                                                    }
                                                                  spids: [32137]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [32134 32135 32144 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:add)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(DQ <-l> ($ Id.VSub_DollarName '$name'))}
                                                          spids: [32150]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32097 32110]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (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: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DAmp]
                                                                  children: [
                                                                    (C {<test>} {<-n>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<test>} {<-f>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                          ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:add)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                        ) ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                      )
                                                                    }
                                                                  spids: [32202]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [32173 32199]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:add)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$linklib')
                                                                  )
                                                                }
                                                              spids: [32214]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32157 32170]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:add_dir)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <-L> ($ Id.VSub_DollarName '$libdir'))}
                                                      spids: [32232]
                                                    )
                                                  ]
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (command.Sentence
                                                          child: 
                                                            (C {<test>} {<-n>} 
                                                              {
                                                                (DQ 
                                                                  ($ Id.VSub_DollarName 
'$inst_prefix_dir'
                                                                  )
                                                                )
                                                              }
                                                            )
                                                          terminator: <Id.Op_Semi _>
                                                        )
                                                      ]
                                                      action: [
                                                        (command.Case
                                                          to_match: {($ Id.VSub_DollarName '$libdir')}
                                                          arms: [
                                                            (case_arm
                                                              pat_list: [
                                                                {<Id.Lit_LBracket '['> 
                                                                  (word_part.EscapedLiteral
                                                                    token: 
                                                                      <Id.Lit_EscapedChar '\\\\'>
                                                                  ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                }
                                                              ]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          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: [32272]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              spids: [32264 32269 32281 -1]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [32243 32254]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:add)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ <-l> ($ Id.VSub_DollarName '$name'))}
                                                      spids: [32290]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName '$add_dir') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                  )
                                                                }
                                                              spids: [32327]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$add'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: finalize_deplibs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ ($ Id.VSub_DollarName '$add') 
                                                                    <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                                  )
                                                                }
                                                              spids: [32345]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32301 32314]
                                                )
                                              ]
                                              else_action: [
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add_dir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add_dir') 
                                                                <' '> ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [32366]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$add'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$add') <' '> 
                                                                ($ Id.VSub_DollarName '$deplibs')
                                                              )
                                                            }
                                                          spids: [32384]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [31989 32014]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [30338 30377]
                                )
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 name:linklib)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName '$old_library'))}
                                                      spids: [32453]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$linklib') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                      )
                                                    }
                                                  spids: [32459]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                        ($ Id.VSub_DollarName '$linklib') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                      )
                                                    }
                                                  spids: [32469]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32426 32440]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName '$name') <' -L'> 
                                                    ($ Id.VSub_DollarName '$dir') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                                  )
                                                }
                                              spids: [32482]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ <-l> ($ Id.VSub_DollarName '$name') <' -L'> 
                                                    ($ Id.VSub_DollarName '$dir') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                                  )
                                                }
                                              spids: [32493]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32398 32411]
                                )
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 {<echo>})
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ 
                                                  <
'*** Warning: This system can not link to static lib archive '
                                                  > ($ Id.VSub_DollarName '$lib') <.>
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** I have the capability to make that library automatically link in when'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** shared version of the library, which you do not appear to have.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {(DQ ($ Id.VSub_DollarName '$module'))} {<Id.Lit_Equals '='>} {<yes>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** But as you try to build a module library, libtool will still create '
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** a static module, that should work as long as the dlopening application'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** is linked with the -dlopen flag to resolve symbols at runtime.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-z>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$global_symbol_pipe'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {<echo>})
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** However, this would only work if libtool was able to extract symbol'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** lists from a program, using '
                                                                  > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'nm\' or equivalent, but libtool could'>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** not find such a program.  So, this module is probably useless.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ <'*** '> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                                  ) <'nm\' from GNU binutils and a full rebuild may help.'>
                                                                )
                                                              }
                                                            )
                                                          ]
                                                          spids: [32631 32642]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                      name: build_libtool_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<module>}
                                                                  spids: [32699]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: build_old_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [32703]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [32683 32696]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<no>}
                                                              spids: [32710]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32594 32607]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32527 32541]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                                    ($ Id.VSub_DollarName '$old_library') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [32723]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:link_static)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [32733]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32507 32520]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$dependency_libs'))}
                                                    )
                                                    (BraceGroup
                                                      children: [
                                                        (command.Sentence
                                                          child: 
                                                            (command.AndOr
                                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                                              children: [
                                                                (C {<test>} 
                                                                  {
                                                                    (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 _>
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:temp_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [32826]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: libdir
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$libdir')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {(SQ <-R>)} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: temp_xrpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                      )
                                                                    }
                                                                  spids: [32866]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$xrpath') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$temp_xrpath'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  spids: [32881 32888 32890 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: xrpath
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$xrpath'
                                                                                ) <' '> ($ Id.VSub_DollarName '$temp_xrpath')
                                                                              )
                                                                            }
                                                                          spids: [32896]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [32893 32894 32902 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [32848 32850 32906 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: temp_deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$temp_deplibs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir')
                                                                      )
                                                                    }
                                                                  spids: [32912]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [32909 32910 32918 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$temp_deplibs'))}
                                                  spids: [32927]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [32763 32819]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newlib_search_path)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$newlib_search_path') <' '> 
                                                ($ Id.VSub_DollarName '$absdir')
                                              )
                                            }
                                          spids: [32937]
                                        )
                                      ]
                                    )
                                    (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 name:newdependency_libs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$abs_ladir') <'/'> 
                                                    ($ Id.VSub_DollarName '$laname') <' '> ($ Id.VSub_DollarName '$newdependency_libs')
                                                  )
                                                }
                                              spids: [32961]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [32975]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                        ($ Id.VSub_DollarName '$newdependency_libs')
                                                      )
                                                    }
                                                  spids: [32990]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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
                                                                      name: specialdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$specialdeplibs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                      )
                                                                    }
                                                                  spids: [33026]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [33017 33024 33033 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [32998 33004]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:tmp_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '> 
                                                        ($ Id.VSub_DollarName '$deplib')
                                                      )
                                                    }
                                                  spids: [33042]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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_name: deplib
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:path)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [33087]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$deplib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:path)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [33101]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [33097 33099 33106 -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 name:dir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_dirname_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [33128]
                                                                )
                                                              ]
                                                            )
                                                            (command.Case
                                                              to_match: 
                                                                {($ Id.VSub_DollarName '$dir')}
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_LBracket '['> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\\\'>
                                                                      ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                    {<Id.Lit_LBracket '['> <A-Za-z> 
                                                                      <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                                      <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$dir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [33164]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [33145 33162 33169 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: absdir
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.AndOr
                                                                                    ops: [Id.Op_DAmp]
                                                                                    children: [
                                                                                      (C {<cd>} 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$dir'
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      )
                                                                                      (C {<pwd>})
                                                                                    ]
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [33176]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (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 '\\`'>) ($ Id.VSub_DollarName '$dir') <'\''>
                                                                                )
                                                                              }
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: absdir
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$dir'
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [33216]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [33192 33203]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [33172 33173 33225 -1]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (command.Simple
                                                                          words: [
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$GREP'
                                                                              )
                                                                            }
                                                                            {(DQ <'^installed=no'>)}
                                                                            {
                                                                              ($ Id.VSub_DollarName 
'$deplib'
                                                                              )
                                                                            }
                                                                          ]
                                                                          redirects: [
                                                                            (redir
                                                                              op: 
                                                                                <Id.Redir_Great '>'>
                                                                              loc: 
                                                                                (redir_loc.Fd
                                                                                  fd: 1
                                                                                )
                                                                              arg: {<'/dev/null'>}
                                                                            )
                                                                          ]
                                                                          do_fork: T
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [
                                                                    (command.Case
                                                                      to_match: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$host'
                                                                          )
                                                                        }
                                                                      arms: [
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'> <-> 
                                                                              <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>
                                                                            }
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: depdepl
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: (word.Empty)
                                                                                  spids: [33264]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: 
deplibrary_names
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (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')}
                                                                                          )
                                                                                      )
                                                                                    }
                                                                                  spids: [33267]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (C {<test>} 
                                                                                          {<-n>} {(DQ ($ Id.VSub_DollarName '$deplibrary_names'))}
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  action: [
                                                                                    (command.ForEach
                                                                                      iter_name: tmp
                                                                                      iter_words: [
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$deplibrary_names'
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      do_arg_iter: F
                                                                                      body: 
                                                                                        (command.DoGroup
                                                                                          children: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      ($ 
Id.VSub_DollarName '$tmp'
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
33321
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                        )
                                                                                    )
                                                                                    (command.If
                                                                                      arms: [
                                                                                        (if_arm
                                                                                          cond: [
                                                                                            (command.Sentence
                                                                                              child: 
                                                                                                (C 
                                                                                                  {
                                                                                                    <
test
                                                                                                    >
                                                                                                  } {<-f>} 
                                                                                                  {
                                                                                                    (DQ 
                                                                                                      ($ 
Id.VSub_DollarName '$absdir'
                                                                                                      ) <'/'> ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                    )
                                                                                                  }
                                                                                                )
                                                                                              terminator: 
                                                                                                <
Id.Op_Semi _
                                                                                                >
                                                                                            )
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
depdepl
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$absdir'
                                                                                                        ) <'/'> ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$depdepl')
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
33347
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
darwin_install_name
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  (${ 
Id.VSub_Name OTOOL
                                                                                                                  )
                                                                                                                } {<-L>} {($ Id.VSub_DollarName '$depdepl')}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  <
awk
                                                                                                                  >
                                                                                                                } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                          )
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
33357
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.If
                                                                                              arms: [
                                                                                                (if_arm
                                                                                                  cond: [
                                                                                                    (command.Sentence
                                                                                                      child: 
                                                                                                        (C 
                                                                                                          {
                                                                                                            <
test
                                                                                                            >
                                                                                                          } {<-z>} {(DQ ($ Id.VSub_DollarName '$darwin_install_name'))}
                                                                                                        )
                                                                                                      terminator: 
                                                                                                        <
Id.Op_Semi _
                                                                                                        >
                                                                                                    )
                                                                                                  ]
                                                                                                  action: [
                                                                                                    (command.ShAssignment
                                                                                                      pairs: [
                                                                                                        (assign_pair
                                                                                                          lhs: 
                                                                                                            (sh_lhs_expr.Name
                                                                                                              name: 
darwin_install_name
                                                                                                            )
                                                                                                          op: 
assign_op.Equal
                                                                                                          rhs: 
                                                                                                            {
                                                                                                              (command_sub
                                                                                                                left_token: 
                                                                                                                  <
Id.Left_Backtick '`'
                                                                                                                  >
                                                                                                                child: 
                                                                                                                  (command.Pipeline
                                                                                                                    children: [
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          (${ 
Id.VSub_Name OTOOL64
                                                                                                                          )
                                                                                                                        } {<-L>} {($ Id.VSub_DollarName '$depdepl')}
                                                                                                                      )
                                                                                                                      (C 
                                                                                                                        {
                                                                                                                          <
awk
                                                                                                                          >
                                                                                                                        } {(SQ <'{if (NR == 2) {print $1;exit}}'>)}
                                                                                                                      )
                                                                                                                    ]
                                                                                                                    negated: 
F
                                                                                                                  )
                                                                                                              )
                                                                                                            }
                                                                                                          spids: [
33393
                                                                                                          ]
                                                                                                        )
                                                                                                      ]
                                                                                                    )
                                                                                                  ]
                                                                                                  spids: [
33379
33390
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
compiler_flags
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$compiler_flags'
                                                                                                        ) <' '> (${ Id.VSub_Name wl) <'-dylib_file '> (${ Id.VSub_Name wl) (${ Id.VSub_Name darwin_install_name) 
                                                                                                        <
':'
                                                                                                        > (${ Id.VSub_Name depdepl)
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
33418
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      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: [
33439
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
path
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: (word.Empty)
                                                                                                  spids: [
33453
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
33328
33344
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                  spids: [33293 33305]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [33256 33261 33462 -1]
                                                                        )
                                                                        (case_arm
                                                                          pat_list: [
                                                                            {<Id.Lit_Star '*'>}
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: path
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ <-L> 
                                                                                        ($ 
Id.VSub_DollarName '$absdir'
                                                                                        ) <'/'> ($ Id.VSub_DollarName '$objdir')
                                                                                      )
                                                                                    }
                                                                                  spids: [33469]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [33465 33466 33478 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [33231 33246]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: libdir
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (command_sub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (C 
                                                                                {
                                                                                  (${ Id.VSub_Name 
SED
                                                                                  )
                                                                                } {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$deplib')}
                                                                              )
                                                                          )
                                                                        }
                                                                      spids: [33487]
                                                                    )
                                                                  ]
                                                                )
                                                                (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 
'\\`'
                                                                              >
                                                                          ) ($ 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 
'\\`'
                                                                              >
                                                                          ) ($ Id.VSub_DollarName '$deplib') <'\' seems to be moved'>
                                                                        )
                                                                      }
                                                                    )
                                                                  ]
                                                                )
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: path
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (DQ <-L> 
                                                                            ($ Id.VSub_DollarName 
'$absdir'
                                                                            )
                                                                          )
                                                                        }
                                                                      spids: [33561]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [33109 33111 33571 -1]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$deplibs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> ($ Id.VSub_DollarName '$path') 
                                                                <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [33588 33595 33597 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: deplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName '$path') <' '> ($ Id.VSub_DollarName '$deplibs')
                                                                      )
                                                                    }
                                                                  spids: [33603]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [33600 33601 33610 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [33054 33068]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [32747 32760]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [
                                    (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 name:compile_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '> ($ Id.VSub_DollarName '$compile_deplibs')
                                              )
                                            }
                                          spids: [33671]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ 
                                                ($ Id.VSub_DollarName '$new_inherited_linker_flags') <' '> ($ Id.VSub_DollarName '$finalize_deplibs')
                                              )
                                            }
                                          spids: [33679]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [33653 33668]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:compiler_flags)
                                      op: assign_op.Equal
                                      rhs: 
                                        {(DQ ($ Id.VSub_DollarName '$compiler_flags') <' '>) 
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                                    {
                                                      (DQ <' '> 
                                                        ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                        )
                                                      )
                                                    }
                                                  )
                                                  (C {($ Id.VSub_DollarName '$SED')} 
                                                    {
                                                      (SQ 
                                                        <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                        >
                                                      )
                                                    }
                                                  )
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [33690]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [33637 33650]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$newdependency_libs'))}
                          spids: [33727]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<test>} {(DQ ($ Id.VSub_DollarName '$pass'))} {<Id.Lit_Equals '='>} 
                                  {<dlpreopen>}
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ForEach
                              iter_name: deplib
                              iter_words: [{($ Id.VSub_DollarName '$save_deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$deplib') <' '> 
                                                ($ Id.VSub_DollarName '$deplibs')
                                              )
                                            }
                                          spids: [33765]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [33733 33746]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [
                                    (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 name:lib_search_path)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [33817]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$newlib_search_path')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: 
                                                {(DQ ($ Id.VSub_DollarName '$lib_search_path') <' '>)}
                                              arms: [
                                                (case_arm
                                                  pat_list: [
                                                    {<Id.Lit_Star '*'> 
                                                      (DQ <' '> ($ Id.VSub_DollarName '$dir') <' '>) <Id.Lit_Star '*'>
                                                    }
                                                  ]
                                                  spids: [33842 33849 33851 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: lib_search_path
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$lib_search_path'
                                                                ) <' '> ($ Id.VSub_DollarName '$dir')
                                                              )
                                                            }
                                                          spids: [33857]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [33854 33855 33864 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newlib_search_path)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [33873]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [33796 33810]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:vars)
                                          op: assign_op.Equal
                                          rhs: {(DQ <deplibs>)}
                                          spids: [33901]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [33880 33898]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:vars)
                                      op: assign_op.Equal
                                      rhs: {(DQ <'compile_deplibs finalize_deplibs'>)}
                                      spids: [33910]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: var
                              iter_words: [{($ Id.VSub_DollarName '$vars')} {<dependency_libs>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<eval>} 
                                      {<Id.Lit_VarLike 'tmp_libs='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) ($ Id.VSub_DollarName '$var')
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [33944]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$tmp_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplib') 
                                                                <' '> ($ Id.VSub_DollarName '$new_libs')
                                                              )
                                                            }
                                                          spids: [33994]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [33990 33992 34001 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<-R> <Id.Lit_Star '*'>}]
                                                  spids: [34004 34006 34008 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName '$specialdeplibs') <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: new_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '> ($ Id.VSub_DollarName '$new_libs')
                                                                      )
                                                                    }
                                                                  spids: [34091]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [34082 34089 34098 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.Case
                                                              to_match: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$new_libs') <' '>
                                                                  )
                                                                }
                                                              arms: [
                                                                (case_arm
                                                                  pat_list: [
                                                                    {<Id.Lit_Star '*'> 
                                                                      (DQ <' '> 
                                                                        ($ Id.VSub_DollarName 
'$deplib'
                                                                        ) <' '>
                                                                      ) <Id.Lit_Star '*'>
                                                                    }
                                                                  ]
                                                                  spids: [34116 34123 34125 -1]
                                                                )
                                                                (case_arm
                                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: new_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$deplib'
                                                                                ) <' '> ($ Id.VSub_DollarName '$new_libs')
                                                                              )
                                                                            }
                                                                          spids: [34131]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [34128 34129 34138 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [34101 34102 34144 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34011 34012 34150 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [34159]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: deplib
                                      iter_words: [{($ Id.VSub_DollarName '$new_libs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$tmp_libs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$deplib') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [34197 34204 34206 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: tmp_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$tmp_libs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                      )
                                                                    }
                                                                  spids: [34212]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [34209 34210 34219 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34181 34183 34225 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$tmp_libs') 
                                                                <' '> ($ Id.VSub_DollarName '$deplib')
                                                              )
                                                            }
                                                          spids: [34231]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [34228 34229 34238 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (C {<eval>} 
                                      {($ Id.VSub_DollarName '$var') <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) <tmp_libs>
                                      }
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [33779 33793]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [34272]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: i
                      iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: 
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName '$predeps') <' '> 
                                    ($ Id.VSub_DollarName '$postdeps') <' '> ($ Id.VSub_DollarName '$compiler_lib_search_path') <' '>
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$i') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:i)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [34313]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34303 34310 34318 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$i'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$tmp_libs') <' '> 
                                                ($ Id.VSub_DollarName '$i')
                                              )
                                            }
                                          spids: [34339]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34324 34336]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dependency_libs)
                          op: assign_op.Equal
                          rhs: {($ Id.VSub_DollarName '$tmp_libs')}
                          spids: [34353]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:dlfiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$newdlfiles'))}
                          spids: [34379]
                        )
                      ]
                    )
                  ]
                  spids: [34363 34376]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (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 name:dlprefiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$newdlprefiles'))}
                          spids: [34416]
                        )
                      ]
                    )
                  ]
                  spids: [34388 34413]
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$linkmode')}
              arms: [
                (case_arm
                  pat_list: [{<oldlib>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 '\\`'>) 
                                  <'-dlopen\' is ignored for archives'>
                                )
                              }
                            )
                          ]
                          spids: [34437 34462]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  <'-l\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-L\' are ignored for archives'>
                                )
                              }
                            )
                          ]
                          spids: [34487 34498 34510 -1]
                        )
                      ]
                    )
                    (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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-export-symbols\' is ignored for archives'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                          op: assign_op.Equal
                          rhs: {<no>}
                          spids: [34627]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlibs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$output'))}
                          spids: [34631]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:objs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$objs') ($ Id.VSub_DollarName '$old_deplibs'))
                            }
                          spids: [34637]
                        )
                      ]
                    )
                  ]
                  spids: [34433 34434 34644 -1]
                )
                (case_arm
                  pat_list: [{<lib>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$outputname')}
                      arms: [
                        (case_arm
                          pat_list: [{<lib> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ <lib>)} {(SQ <.la>)} 
                              {(DQ ($ Id.VSub_DollarName '$outputname'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                  spids: [34683]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {
                                (DQ <'shared_ext='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {<eval>} 
                              {
                                (DQ <'libname='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                          ]
                          spids: [34663 34665 34707 -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 '\\`'>
                                      ) ($ Id.VSub_DollarName '$output') <'\' must begin with '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) <'lib\''>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [34776]
                                        )
                                      ]
                                    )
                                    (C {<eval>} 
                                      {
                                        (DQ <'shared_ext='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                    (C {<eval>} 
                                      {
                                        (DQ <'libname='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [34741 34755]
                                )
                              ]
                              else_action: [
                                (C {<func_stripname>} {(SQ )} {(SQ <.la>)} 
                                  {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libname)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                      spids: [34817]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [34710 34711 34824 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$objs'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                          ) ($ Id.VSub_DollarName '$output') <'\' from non-libtool objects on this host:'> 
                                          ($ Id.VSub_DollarName '$objs')
                                        )
                                      }
                                    )
                                  ]
                                  spids: [34845 34859]
                                )
                              ]
                              else_action: [
                                (C {<echo>})
                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                  {
                                    (DQ <'*** Warning: Linking the shared library '> 
                                      ($ Id.VSub_DollarName '$output') <' against the non-libtool'>
                                    )
                                  }
                                )
                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                  {
                                    (DQ <'*** objects '> ($ Id.VSub_DollarName '$objs') 
                                      <' is not portable!'>
                                    )
                                  }
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                            ($ Id.VSub_DollarName '$objs')
                                          )
                                        }
                                      spids: [34897]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [34831 34842]
                        )
                      ]
                    )
                    (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 '\\`'>) 
                              <'-dlopen self\' is ignored for libtool libraries'>
                            )
                          }
                        )
                      ]
                    )
                    (C {<Id.KW_Set 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 '\\`'>
                              ) <'-rpath\'s for a libtool library'>
                            )
                          }
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:install_libdir)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_Number '$1'))}
                          spids: [34970]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:oldlibs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [34977]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 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: [35026]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                          op: assign_op.Equal
                                          rhs: {<convenience>}
                                          spids: [35038]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:build_old_libs)
                                          op: assign_op.Equal
                                          rhs: {<yes>}
                                          spids: [35042]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [34994 35007]
                                )
                              ]
                            )
                            (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 '\\`'>) 
                                      <
'-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 '\\`'>) 
                                      <'-release\' is ignored for convenience libraries'>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [34980 34991]
                        )
                      ]
                      else_action: [
                        (command.Sentence
                          child: 
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_ifs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                  spids: [35099]
                                )
                              ]
                            )
                          terminator: <Id.Op_Semi _>
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:IFS)
                              op: assign_op.Equal
                              rhs: {(SQ <':'>)}
                              spids: [35105]
                            )
                          ]
                        )
                        (C {<Id.KW_Set set>} {<dummy>} {($ Id.VSub_DollarName '$vinfo')} {<0>} {<0>} {<0>})
                        (C {<shift>})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:IFS)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                              spids: [35127]
                            )
                          ]
                        )
                        (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 '\\`'>
                                  ) <'-version-info\''>
                                )
                              }
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$vinfo_number')}
                          arms: [
                            (case_arm
                              pat_list: [{<yes>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_major)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                      spids: [35180]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_minor)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$2'))}
                                      spids: [35186]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:number_revision)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$3'))}
                                      spids: [35192]
                                    )
                                  ]
                                )
                                (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 name:current)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [35254]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_minor'))}
                                              spids: [35258]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_revision'))}
                                              spids: [35264]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [35233 35242 35270 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<freebsd-aout>} {<freebsd-elf>} {<qnx>} {<sunos>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:current)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_major'))}
                                              spids: [35283]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_minor'))}
                                              spids: [35289]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {(DQ <0>)}
                                              spids: [35295]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [35273 35280 35301 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<irix>} {<nonstopux>}]
                                      action: [
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$number_major')} 
                                          {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$number_minor')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:current)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [35319]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:age)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_minor'))}
                                              spids: [35323]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:revision)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$number_minor'))}
                                              spids: [35329]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:lt_irix_increment)
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                              spids: [35335]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [35304 35307 35339 -1]
                                    )
                                  ]
                                )
                              ]
                              spids: [35176 35177 35345 -1]
                            )
                            (case_arm
                              pat_list: [{<no>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:current)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                      spids: [35352]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:revision)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$2'))}
                                      spids: [35358]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:age)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_Number '$3'))}
                                      spids: [35364]
                                    )
                                  ]
                                )
                              ]
                              spids: [35348 35349 35370 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$current')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [35388 35439 35441 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'CURRENT '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$current') <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                      ($ Id.VSub_DollarName '$vinfo') <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [35444 35445 35467 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$revision')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [35481 35532 35534 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'REVISION '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$revision') <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                      ($ Id.VSub_DollarName '$vinfo') <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [35537 35538 35560 -1]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$age')}
                          arms: [
                            (case_arm
                              pat_list: [
                                {<0>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'>}
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'>
                                }
                                {<Id.Lit_LBracket '['> <1-9> <Id.Lit_RBracket ']'> 
                                  <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> 
                                  <Id.Lit_RBracket ']'> <Id.Lit_LBracket '['> <0-9> <Id.Lit_RBracket ']'>
                                }
                              ]
                              spids: [35574 35625 35627 -1]
                            )
                            (case_arm
                              pat_list: [{<Id.Lit_Star '*'>}]
                              action: [
                                (C {<func_error>} 
                                  {
                                    (DQ <'AGE '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$age') <'\' must be a nonnegative integer'>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                      ($ Id.VSub_DollarName '$vinfo') <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [35630 35631 35653 -1]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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 '\\`'>
                                      ) ($ Id.VSub_DollarName '$age') <'\' is greater than the current interface number '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\`'>
                                      ) ($ Id.VSub_DollarName '$current') <'\''>
                                    )
                                  }
                                )
                                (C {<func_fatal_error>} 
                                  {
                                    (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                      ($ Id.VSub_DollarName '$vinfo') <'\' is not valid version information'>
                                    )
                                  }
                                )
                              ]
                              spids: [35660 35675]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:major)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [35708]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:versuffix)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [35711]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:verstring)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [35714]
                            )
                          ]
                        )
                        (command.Case
                          to_match: {($ Id.VSub_DollarName '$version_type')}
                          arms: [
                            (case_arm
                              pat_list: [{<none>}]
                              spids: [35724 35725 35727 -1]
                            )
                            (case_arm
                              pat_list: [{<darwin>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [35752]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$major') <.> 
                                            ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [35757]
                                    )
                                  ]
                                )
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} 
                                  {<Id.Lit_Other '+'>} {<1>}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:minor_current)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [35780]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name 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: [35784]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <'-compatibility_version '> 
                                            ($ Id.VSub_DollarName '$minor_current') <' -current_version '> ($ Id.VSub_DollarName '$minor_current') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [35808]
                                    )
                                  ]
                                )
                              ]
                              spids: [35731 35732 35819 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-aout>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [35827]
                                    )
                                  ]
                                )
                                (command.Sentence
                                  child: 
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:versuffix)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <.> ($ Id.VSub_DollarName '$current') <.> 
                                                ($ Id.VSub_DollarName '$revision')
                                              )
                                            }
                                          spids: [35834]
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              spids: [35823 35824 35844 -1]
                            )
                            (case_arm
                              pat_list: [{<freebsd-elf>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [35852]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [35859]
                                    )
                                  ]
                                )
                              ]
                              spids: [35848 35849 35866 -1]
                            )
                            (case_arm
                              pat_list: [{<irix>} {<nonstopux>}]
                              action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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: [35878 35894]
                                    )
                                  ]
                                  else_action: [
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                      {($ Id.VSub_DollarName '$age')} {<Id.Lit_Other '+'>} {<1>}
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [35925]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$version_type')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<nonstopux>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring_prefix)
                                              op: assign_op.Equal
                                              rhs: {<nonstopux>}
                                              spids: [35940]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [35937 35938 35943 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring_prefix)
                                              op: assign_op.Equal
                                              rhs: {<sgi>}
                                              spids: [35949]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [35946 35947 35952 -1]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$verstring_prefix') 
                                            ($ Id.VSub_DollarName '$major') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [35958]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$revision')}
                                      spids: [35972]
                                    )
                                  ]
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: [
                                    (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 name:iface)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [36001]
                                            )
                                          ]
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$loop')} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:loop)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [36014]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name 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: [36018]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$major')}
                                      spids: [36037]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$major') <.> 
                                            ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [36042]
                                    )
                                  ]
                                )
                              ]
                              spids: [35870 35875 36050 -1]
                            )
                            (case_arm
                              pat_list: [{<linux>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [36067]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$major') <.> 
                                            ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [36072]
                                    )
                                  ]
                                )
                              ]
                              spids: [36054 36055 36082 -1]
                            )
                            (case_arm
                              pat_list: [{<osf>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {<.> ($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [36099]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <.> ($ Id.VSub_DollarName '$current') <.> 
                                            ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [36104]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$current') <.> 
                                            ($ Id.VSub_DollarName '$age') <.> ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [36115]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:loop)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$age')}
                                      spids: [36130]
                                    )
                                  ]
                                )
                                (command.WhileUntil
                                  keyword: <Id.KW_While while>
                                  cond: [
                                    (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 name:iface)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [36159]
                                            )
                                          ]
                                        )
                                        (C {<func_arith>} {($ Id.VSub_DollarName '$loop')} {<->} {<1>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:loop)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                              spids: [36172]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$verstring') <':'> 
                                                    (${ Id.VSub_Name iface) <.0>
                                                  )
                                                }
                                              spids: [36176]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$verstring') <':'> 
                                            (${ Id.VSub_Name current) <.0>
                                          )
                                        }
                                      spids: [36195]
                                    )
                                  ]
                                )
                              ]
                              spids: [36086 36087 36206 -1]
                            )
                            (case_arm
                              pat_list: [{<qnx>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [36214]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [36221]
                                    )
                                  ]
                                )
                              ]
                              spids: [36210 36211 36228 -1]
                            )
                            (case_arm
                              pat_list: [{<sunos>}]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {(DQ <.> ($ Id.VSub_DollarName '$current'))}
                                      spids: [36236]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ <.> ($ Id.VSub_DollarName '$current') <.> 
                                            ($ Id.VSub_DollarName '$revision')
                                          )
                                        }
                                      spids: [36243]
                                    )
                                  ]
                                )
                              ]
                              spids: [36232 36233 36252 -1]
                            )
                            (case_arm
                              pat_list: [{<windows>}]
                              action: [
                                (C {<func_arith>} {($ Id.VSub_DollarName '$current')} {<->} 
                                  {($ Id.VSub_DollarName '$age')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                      spids: [36277]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: {(DQ <-> ($ Id.VSub_DollarName '$major'))}
                                      spids: [36281]
                                    )
                                  ]
                                )
                              ]
                              spids: [36256 36257 36288 -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 '\\`'>
                                      ) ($ Id.VSub_DollarName '$version_type') <'\''>
                                    )
                                  }
                                )
                              ]
                              spids: [36292 36293 36306 -1]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$vinfo'))})
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$release'))})
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:major)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [36341]
                                    )
                                  ]
                                )
                                (command.Case
                                  to_match: {($ Id.VSub_DollarName '$version_type')}
                                  arms: [
                                    (case_arm
                                      pat_list: [{<darwin>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [36363]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [36351 36352 36366 -1]
                                    )
                                    (case_arm
                                      pat_list: [{<Id.Lit_Star '*'>}]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:verstring)
                                              op: assign_op.Equal
                                              rhs: {(DQ <0.0>)}
                                              spids: [36373]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [36369 36370 36379 -1]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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 name:versuffix)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [36401]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [36385 36398]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:versuffix)
                                          op: assign_op.Equal
                                          rhs: {(DQ <.0.0>)}
                                          spids: [36407]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                              spids: [36317 36338]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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 name:major)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [36452]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:versuffix)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [36455]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:verstring)
                                      op: assign_op.Equal
                                      rhs: {(DQ )}
                                      spids: [36458]
                                    )
                                  ]
                                )
                              ]
                              spids: [36424 36449]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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: [
                                        (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 name:build_libtool_libs)
                                              op: assign_op.Equal
                                              rhs: {<no>}
                                              spids: [36512]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:build_old_libs)
                                              op: assign_op.Equal
                                              rhs: {<yes>}
                                              spids: [36516]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [36487 36500]
                                    )
                                  ]
                                )
                              ]
                              spids: [36471 36484]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:allow_undefined_flag)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$no_undefined_flag'))}
                                  spids: [36530]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (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 name:libobjs)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                ($ Id.VSub_DollarName '$symfileobj')
                              )
                            }
                          spids: [36559]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} {<Id.Lit_Equals '='>} 
                          {(DQ <'X '>)}
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:libobjs)
                              op: assign_op.Equal
                              rhs: (word.Empty)
                              spids: [36582]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:removelist)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [36611]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tempremovelist)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                            {(DQ ($ Id.VSub_DollarName '$output_objdir') <'/*'>)}
                                          )
                                      )
                                    }
                                  spids: [36614]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: p
                              iter_words: [{($ Id.VSub_DollarName '$tempremovelist')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$p')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <.> ($ Id.VSub_DollarName '$objext')}
                                            {<Id.Lit_Star '*'> <.gcno>}
                                          ]
                                          spids: [36646 36654 36657 -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: [
                                                    (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: [
                                                            (command.Pipeline
                                                              children: [
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {(DQ ($ Id.VSub_DollarName '$p'))}
                                                                )
                                                                (command.Simple
                                                                  words: [
                                                                    {($ Id.VSub_DollarName '$EGREP')}
                                                                    {<-e>}
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$precious_files_regex'
                                                                        )
                                                                      )
                                                                    }
                                                                  ]
                                                                  redirects: [
                                                                    (redir
                                                                      op: <Id.Redir_Great '>'>
                                                                      loc: (redir_loc.Fd fd:1)
                                                                      arg: {<'/dev/null'>}
                                                                    )
                                                                    (redir
                                                                      op: <Id.Redir_GreatAnd '2>&'>
                                                                      loc: (redir_loc.Fd fd:2)
                                                                      arg: {<1>}
                                                                    )
                                                                  ]
                                                                  do_fork: T
                                                                )
                                                              ]
                                                              negated: F
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ControlFlow
                                                              token: 
                                                                <Id.ControlFlow_Continue continue>
                                                            )
                                                          ]
                                                          spids: [36707 36732]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [36687 36704]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:removelist)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$removelist') <' '> 
                                                        ($ Id.VSub_DollarName '$p')
                                                      )
                                                    }
                                                  spids: [36744]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [36660 36684 36752 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          spids: [36755 36756 36758 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$removelist'))})
                                (C {<func_show_eval>} 
                                  {
                                    (DQ (${ Id.VSub_Name RM) <'r '> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <removelist>
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                          spids: [36586 36600]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 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: [36829]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {(DQ ($ Id.VSub_DollarName '$objs') <' '>) 
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (DQ <'/'> <Id.Lit_Other '\\'> <.> 
                                                    (${ Id.VSub_Name libext) <Id.Lit_Other '$'> <'/d; '> ($ Id.VSub_DollarName '$lo2o')
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [36846]
                                )
                              ]
                            )
                          ]
                          spids: [36799 36826]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$xrpath'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:temp_xrpath)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [36935]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: libdir
                              iter_words: [{($ Id.VSub_DollarName '$xrpath')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:temp_xrpath)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$temp_xrpath') <' -R'> 
                                                ($ Id.VSub_DollarName '$libdir')
                                              )
                                            }
                                          spids: [36950]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$finalize_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [36968 36975 36977 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$finalize_rpath') 
                                                        <' '> ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [36983]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [36980 36981 36990 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:dependency_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$temp_xrpath') <' '> 
                                                ($ Id.VSub_DollarName '$dependency_libs')
                                              )
                                            }
                                          spids: [37028]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [36999 37025]
                                )
                              ]
                            )
                          ]
                          spids: [36917 36928]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_dlfiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$dlfiles'))}
                          spids: [37047]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlfiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [37053]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: lib
                      iter_words: [{($ Id.VSub_DollarName '$old_dlfiles')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: 
                                {
                                  (DQ <' '> ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                    ($ Id.VSub_DollarName '$dlfiles') <' '>
                                  )
                                }
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$lib') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [37081 37088 37090 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlfiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$dlfiles') <' '> 
                                                ($ Id.VSub_DollarName '$lib')
                                              )
                                            }
                                          spids: [37096]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37093 37094 37103 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_dlprefiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$dlprefiles'))}
                          spids: [37117]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlprefiles)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [37123]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: lib
                      iter_words: [{($ Id.VSub_DollarName '$old_dlprefiles')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ ($ Id.VSub_DollarName '$dlprefiles') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> (DQ <' '> ($ Id.VSub_DollarName '$lib') <' '>) 
                                      <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [37148 37155 37157 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlprefiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$dlprefiles') <' '> 
                                                ($ Id.VSub_DollarName '$lib')
                                              )
                                            }
                                          spids: [37163]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37160 37161 37170 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [
                                    (command.Sentence
                                      child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$rpath'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$host')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-beos> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-haiku> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [37217 37268 37275 -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 name:deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$deplibs') 
                                                        <' System.ltframework'>
                                                      )
                                                    }
                                                  spids: [37300]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [37278 37293 37307 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-netbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [37310 37315 37322 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-openbsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-freebsd> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-dragonfly> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [37325 37346 37353 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco3.2v5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sco5v6> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [37356 37369 37376 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv4.2uw2> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-sysv5> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-unixware> 
                                              <Id.Lit_Star '*'>
                                            }
                                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-OpenUNIX> 
                                              <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [37379 37408 37415 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$deplibs') 
                                                                <' -lc'>
                                                              )
                                                            }
                                                          spids: [37444]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [37426 37441]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [37418 37419 37454 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37196 37207]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$name')}
                                  spids: [37468]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libname_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libname')}
                                  spids: [37472]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$release')}
                                  spids: [37476]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$versuffix')}
                                  spids: [37480]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major_save)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$major')}
                                  spids: [37484]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [37500]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [37505]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major)
                                  op: assign_op.Equal
                                  rhs: {(DQ )}
                                  spids: [37510]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:newdeplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [37515]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:droppeddeps)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [37518]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplibs_check_method')}
                              arms: [
                                (case_arm
                                  pat_list: [{<pass_all>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$deplibs')}
                                          spids: [37553]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37529 37530 37557 -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.MultiLine
                                              here_begin: {<EOF>}
                                              here_end_span_id: 37600
                                              stdin_parts: [<'\t  int main() { return 0; }\n'>]
                                            )
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {($ Id.VSub_DollarName '$RM')} {<conftest>})
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {($ Id.VSub_DollarName '$LTCC')} 
                                                  {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {<conftest>} {<conftest.c>} {($ Id.VSub_DollarName '$deplibs')}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:ldd_output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (command_sub
                                                        left_token: <Id.Left_Backtick '`'>
                                                        child: (C {<ldd>} {<conftest>})
                                                      )
                                                    }
                                                  spids: [37629]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: i
                                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$i')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                          action: [
                                                            (C {<func_stripname>} {<-l>} {(SQ )} 
                                                              {(DQ ($ Id.VSub_DollarName '$i'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                      )
                                                                    }
                                                                  spids: [37675]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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
                                                                                      name: 
newdeplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                        ) <' '> ($ Id.VSub_DollarName '$i')
                                                                                      )
                                                                                    }
                                                                                  spids: [37722]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: i
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {(DQ )}
                                                                                  spids: [37730]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [37712 37719 37735 -1]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [37679 37696]
                                                                )
                                                              ]
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<test>} {<-n>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$i'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [
                                                                    (C {<eval>} 
                                                                      {
                                                                        (DQ <'libname='> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\"'
                                                                              >
                                                                          ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                        )
                                                                      }
                                                                    )
                                                                    (C {<eval>} 
                                                                      {
                                                                        (DQ <'deplib_matches='> 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\"'
                                                                              >
                                                                          ) ($ Id.VSub_DollarName '$library_names_spec') 
                                                                          (word_part.EscapedLiteral
                                                                            token: 
                                                                              <Id.Lit_EscapedChar 
'\\"'
                                                                              >
                                                                          )
                                                                        )
                                                                      }
                                                                    )
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<Id.KW_Set set>} {<dummy>} 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$deplib_matches'
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                    (C {<shift>})
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: deplib_match
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {($ Id.VSub_Number '$1')}
                                                                          spids: [37789]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.If
                                                                      arms: [
                                                                        (if_arm
                                                                          cond: [
                                                                            (command.Sentence
                                                                              child: 
                                                                                (C {<test>} 
                                                                                  {
                                                                                    (command_sub
                                                                                      left_token: 
                                                                                        <
Id.Left_Backtick '`'
                                                                                        >
                                                                                      child: 
                                                                                        (C {<expr>} 
                                                                                          {
                                                                                            (DQ 
                                                                                              ($ 
Id.VSub_DollarName '$ldd_output'
                                                                                              )
                                                                                            )
                                                                                          } {<Id.Lit_Colon ':'>} {(DQ <'.*'> ($ Id.VSub_DollarName '$deplib_match'))}
                                                                                        )
                                                                                    )
                                                                                  } {<-ne>} {<0>}
                                                                                )
                                                                              terminator: 
                                                                                <Id.Op_Semi _>
                                                                            )
                                                                          ]
                                                                          action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: 
newdeplibs
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                        ) <' '> ($ Id.VSub_DollarName '$i')
                                                                                      )
                                                                                    }
                                                                                  spids: [37823]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                          spids: [37793 37820]
                                                                        )
                                                                      ]
                                                                      else_action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: droppeddeps
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: {<yes>}
                                                                              spids: [37834]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (C {<echo>})
                                                                        (C 
                                                                          {
                                                                            ($ Id.VSub_DollarName 
'$ECHO'
                                                                            )
                                                                          } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName '$i') <.>)}
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** I have the capability to make that library automatically link in when'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** you link to this library.  But I can only do this if you have a'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** shared version of the library, which I believe you do not have'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** because a test_compile did reveal that the linker did not use it for'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<echo>} 
                                                                          {
                                                                            (DQ 
                                                                              <
'*** its dynamic dependency list that programs get resolved with at runtime.'
                                                                              >
                                                                            )
                                                                          }
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [37744 37756]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [37658 37660 37891 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdeplibs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdeplibs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$i')
                                                                      )
                                                                    }
                                                                  spids: [37898]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [37894 37895 37906 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [37611 37626]
                                        )
                                      ]
                                      else_action: [
                                        (command.ForEach
                                          iter_name: i
                                          iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$i')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                      action: [
                                                        (C {<func_stripname>} {<-l>} {(SQ )} 
                                                          {(DQ ($ Id.VSub_DollarName '$i'))}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:name)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                                  )
                                                                }
                                                              spids: [37962]
                                                            )
                                                          ]
                                                        )
                                                        (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: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C 
                                                                      {
                                                                        ($ Id.VSub_DollarName '$LTCC')
                                                                      } {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {<conftest>} {<conftest.c>} {($ Id.VSub_DollarName '$i')}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: ldd_output
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          (command_sub
                                                                            left_token: 
                                                                              <Id.Left_Backtick '`'>
                                                                            child: 
                                                                              (C {<ldd>} {<conftest>})
                                                                          )
                                                                        }
                                                                      spids: [37993]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: [
                                                                        (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
                                                                                          name: 
newdeplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$i')
                                                                                          )
                                                                                        }
                                                                                      spids: [38046]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: i
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: {(DQ )}
                                                                                      spids: [38054]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              spids: [
38036
38043
38059
-1
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                      spids: [38003 38020]
                                                                    )
                                                                  ]
                                                                )
                                                                (command.If
                                                                  arms: [
                                                                    (if_arm
                                                                      cond: [
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<test>} {<-n>} 
                                                                              {
                                                                                (DQ 
                                                                                  ($ 
Id.VSub_DollarName '$i'
                                                                                  )
                                                                                )
                                                                              }
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                      ]
                                                                      action: [
                                                                        (C {<eval>} 
                                                                          {
                                                                            (DQ <'libname='> 
                                                                              (word_part.EscapedLiteral
                                                                                token: 
                                                                                  <
Id.Lit_EscapedChar '\\"'
                                                                                  >
                                                                              ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                            )
                                                                          }
                                                                        )
                                                                        (C {<eval>} 
                                                                          {
                                                                            (DQ <'deplib_matches='> 
                                                                              (word_part.EscapedLiteral
                                                                                token: 
                                                                                  <
Id.Lit_EscapedChar '\\"'
                                                                                  >
                                                                              ) ($ Id.VSub_DollarName '$library_names_spec') 
                                                                              (word_part.EscapedLiteral
                                                                                token: 
                                                                                  <
Id.Lit_EscapedChar '\\"'
                                                                                  >
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                        (command.Sentence
                                                                          child: 
                                                                            (C {<Id.KW_Set set>} 
                                                                              {<dummy>} {($ Id.VSub_DollarName '$deplib_matches')}
                                                                            )
                                                                          terminator: <Id.Op_Semi _>
                                                                        )
                                                                        (C {<shift>})
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  name: deplib_match
                                                                                )
                                                                              op: assign_op.Equal
                                                                              rhs: 
                                                                                {
                                                                                  ($ Id.VSub_Number 
'$1'
                                                                                  )
                                                                                }
                                                                              spids: [38113]
                                                                            )
                                                                          ]
                                                                        )
                                                                        (command.If
                                                                          arms: [
                                                                            (if_arm
                                                                              cond: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (C {<test>} 
                                                                                      {
                                                                                        (command_sub
                                                                                          left_token: 
                                                                                            <
Id.Left_Backtick '`'
                                                                                            >
                                                                                          child: 
                                                                                            (C 
                                                                                              {
                                                                                                <
expr
                                                                                                >
                                                                                              } {(DQ ($ Id.VSub_DollarName '$ldd_output'))} {<Id.Lit_Colon ':'>} 
                                                                                              {
                                                                                                (DQ 
                                                                                                  <
'.*'
                                                                                                  > ($ Id.VSub_DollarName '$deplib_match')
                                                                                                )
                                                                                              }
                                                                                            )
                                                                                        )
                                                                                      } {<-ne>} {<0>}
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                              action: [
                                                                                (command.ShAssignment
                                                                                  pairs: [
                                                                                    (assign_pair
                                                                                      lhs: 
                                                                                        (sh_lhs_expr.Name
                                                                                          name: 
newdeplibs
                                                                                        )
                                                                                      op: 
assign_op.Equal
                                                                                      rhs: 
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                            ) <' '> ($ Id.VSub_DollarName '$i')
                                                                                          )
                                                                                        }
                                                                                      spids: [38147]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                              ]
                                                                              spids: [38117 38144]
                                                                            )
                                                                          ]
                                                                          else_action: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: 
droppeddeps
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: {<yes>}
                                                                                  spids: [38158]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (C {<echo>})
                                                                            (C 
                                                                              {
                                                                                ($ 
Id.VSub_DollarName '$ECHO'
                                                                                )
                                                                              } {(DQ <'*** Warning: dynamic linker does not accept needed library '> ($ Id.VSub_DollarName '$i') <.>)}
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** because a test_compile did reveal that the linker did not use this one'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                            (C {<echo>} 
                                                                              {
                                                                                (DQ 
                                                                                  <
'*** as a dynamic dependency that programs can get resolved with at runtime.'
                                                                                  >
                                                                                )
                                                                              }
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                      spids: [38068 38080]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                              spids: [37975 37990]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [38218]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ <'*** Warning!  Library '> 
                                                                  ($ Id.VSub_DollarName '$i') <' is needed by this library but I was not able to'>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** make it link in!  You will probably need to install it or some'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** library that it depends on before this library will be fully'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** functional.  Installing it before continuing would be even better.'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [37945 37947 38258 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:newdeplibs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$newdeplibs'
                                                                    ) <' '> ($ Id.VSub_DollarName '$i')
                                                                  )
                                                                }
                                                              spids: [38265]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [38261 38262 38273 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [37560 37561 38285 -1]
                                )
                                (case_arm
                                  pat_list: [{<file_magic> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.KW_Set set>} {<dummy>} 
                                          {($ Id.VSub_DollarName '$deplibs_check_method')}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:file_magic_regex)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<expr>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$deplibs_check_method')
                                                      )
                                                    } {<Id.Lit_Colon ':'>} 
                                                    {
                                                      (DQ ($ Id.VSub_Number '$1') <' '> 
                                                        <Id.Lit_Other '\\'> <'(.*'> <Id.Lit_Other '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                              )
                                            }
                                          spids: [38303]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: a_deplib
                                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$a_deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {<-l>} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:name)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                              )
                                                            }
                                                          spids: [38366]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                              name: newdeplibs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                ) <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                                              )
                                                                            }
                                                                          spids: [38413]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {(DQ )}
                                                                          spids: [38421]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [38403 38410 38426 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [38370 38387]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$a_deplib'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {<eval>} 
                                                              {
                                                                (DQ <'libname='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                  ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                )
                                                              }
                                                            )
                                                            (command.ForEach
                                                              iter_name: i
                                                              iter_words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$sys_lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$shlib_search_path'
                                                                  )
                                                                }
                                                              ]
                                                              do_arg_iter: F
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: potential_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    words: [
                                                                                      {<ls>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$i'
                                                                                        ) <'/'> ($ Id.VSub_DollarName '$libname') <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '2>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [38476]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ForEach
                                                                      iter_name: potent_lib
                                                                      iter_words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$potential_libs'
                                                                          )
                                                                        }
                                                                      ]
                                                                      do_arg_iter: F
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (command.Pipeline
                                                                                          children: [
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  <
ls
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  <
-lLd
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '2>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
2
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName '$GREP'
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    <
' -> '
                                                                                                    >
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
1
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          negated: F
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  action: [
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Continue continue
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  spids: [38511 38537]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [38566]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.WhileUntil
                                                                              keyword: 
                                                                                <Id.KW_While while>
                                                                              cond: [
                                                                                (command.Sentence
                                                                                  child: 
                                                                                    (command.Simple
                                                                                      words: [
                                                                                        {<test>}
                                                                                        {<-h>}
                                                                                        {
                                                                                          (DQ 
                                                                                            ($ 
Id.VSub_DollarName '$potlib'
                                                                                            )
                                                                                          )
                                                                                        }
                                                                                      ]
                                                                                      redirects: [
                                                                                        (redir
                                                                                          op: 
                                                                                            <
Id.Redir_Great '2>'
                                                                                            >
                                                                                          loc: 
                                                                                            (redir_loc.Fd
                                                                                              fd: 2
                                                                                            )
                                                                                          arg: 
                                                                                            {
                                                                                              <
'/dev/null'
                                                                                              >
                                                                                            }
                                                                                        )
                                                                                      ]
                                                                                      do_fork: T
                                                                                    )
                                                                                  terminator: 
                                                                                    <Id.Op_Semi _>
                                                                                )
                                                                              ]
                                                                              body: 
                                                                                (command.DoGroup
                                                                                  children: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
potliblink
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (command_sub
                                                                                                left_token: 
                                                                                                  <
Id.Left_Backtick '`'
                                                                                                  >
                                                                                                child: 
                                                                                                  (command.Pipeline
                                                                                                    children: [
                                                                                                      (C 
                                                                                                        {
                                                                                                          <
ls
                                                                                                          >
                                                                                                        } {<-ld>} {($ Id.VSub_DollarName '$potlib')}
                                                                                                      )
                                                                                                      (C 
                                                                                                        {
                                                                                                          (${ 
Id.VSub_Name SED
                                                                                                          )
                                                                                                        } {(SQ <'s/.* -> //'>)}
                                                                                                      )
                                                                                                    ]
                                                                                                    negated: 
F
                                                                                                  )
                                                                                              )
                                                                                            }
                                                                                          spids: [
38589
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.Case
                                                                                      to_match: 
                                                                                        {
                                                                                          ($ 
Id.VSub_DollarName '$potliblink'
                                                                                          )
                                                                                        }
                                                                                      arms: [
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_LBracket '['
                                                                                              > (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) <'/'> <Id.Lit_RBracket ']'> 
                                                                                              <
Id.Lit_Star '*'
                                                                                              >
                                                                                            }
                                                                                            {
                                                                                              <
Id.Lit_LBracket '['
                                                                                              > <A-Za-z> <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> 
                                                                                              (word_part.EscapedLiteral
                                                                                                token: 
                                                                                                  <
Id.Lit_EscapedChar '\\\\'
                                                                                                  >
                                                                                              ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (DQ 
                                                                                                        ($ 
Id.VSub_DollarName '$potliblink'
                                                                                                        )
                                                                                                      )
                                                                                                    }
                                                                                                  spids: [
38637
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
38618
38635
38641
-1
                                                                                          ]
                                                                                        )
                                                                                        (case_arm
                                                                                          pat_list: [
                                                                                            {
                                                                                              <
Id.Lit_Star '*'
                                                                                              >
                                                                                            }
                                                                                          ]
                                                                                          action: [
                                                                                            (command.ShAssignment
                                                                                              pairs: [
                                                                                                (assign_pair
                                                                                                  lhs: 
                                                                                                    (sh_lhs_expr.Name
                                                                                                      name: 
potlib
                                                                                                    )
                                                                                                  op: 
assign_op.Equal
                                                                                                  rhs: 
                                                                                                    {
                                                                                                      (command_sub
                                                                                                        left_token: 
                                                                                                          <
Id.Left_Backtick '`'
                                                                                                          >
                                                                                                        child: 
                                                                                                          (command.Pipeline
                                                                                                            children: [
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName '$ECHO'
                                                                                                                  )
                                                                                                                } {(DQ ($ Id.VSub_DollarName '$potlib'))}
                                                                                                              )
                                                                                                              (C 
                                                                                                                {
                                                                                                                  ($ 
Id.VSub_DollarName '$SED'
                                                                                                                  )
                                                                                                                } {(SQ <'s,[^/]*$,,'>)}
                                                                                                              )
                                                                                                            ]
                                                                                                            negated: 
F
                                                                                                          )
                                                                                                      ) (DQ ($ Id.VSub_DollarName '$potliblink'))
                                                                                                    }
                                                                                                  spids: [
38647
                                                                                                  ]
                                                                                                )
                                                                                              ]
                                                                                            )
                                                                                          ]
                                                                                          spids: [
38644
38645
38668
-1
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                  ]
                                                                                )
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (command.Pipeline
                                                                                          children: [
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  <
eval
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName '$file_magic_cmd'
                                                                                                    ) <' '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                                                                                    (word_part.EscapedLiteral
                                                                                                      token: 
                                                                                                        <
Id.Lit_EscapedChar '\\$'
                                                                                                        >
                                                                                                    ) <potlib> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '2>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
2
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName '$SED'
                                                                                                )
                                                                                              } {<-e>} {<10q>}
                                                                                            )
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName '$EGREP'
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName '$file_magic_regex'
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
1
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          negated: F
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
newdeplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                                                              )
                                                                                            }
                                                                                          spids: [
38719
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {(DQ )}
                                                                                          spids: [
38727
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [38677 38716]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [38435 38447]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$a_deplib'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [38764]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName '$a_deplib') <.>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because I did check the linker path looking for a file starting'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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: [38808 38820]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ <'*** with '> 
                                                                      ($ Id.VSub_DollarName 
'$libname'
                                                                      ) <' and none of the candidates passed a file format test'>
                                                                    )
                                                                  }
                                                                )
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ 
                                                                      <
'*** using a file magic. Last file checked: '
                                                                      > ($ Id.VSub_DollarName '$potlib')
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [38749 38761]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [38349 38351 38858 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName '$newdeplibs') <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                              )
                                                            }
                                                          spids: [38869]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [38861 38862 38877 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [38288 38290 38889 -1]
                                )
                                (case_arm
                                  pat_list: [{<match_pattern> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Sentence
                                      child: 
                                        (C {<Id.KW_Set set>} {<dummy>} 
                                          {($ Id.VSub_DollarName '$deplibs_check_method')}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (C {<shift>})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:match_pattern_regex)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (C {<expr>} 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$deplibs_check_method')
                                                      )
                                                    } {<Id.Lit_Colon ':'>} 
                                                    {
                                                      (DQ ($ Id.VSub_Number '$1') <' '> 
                                                        <Id.Lit_Other '\\'> <'(.*'> <Id.Lit_Other '\\'> <')'>
                                                      )
                                                    }
                                                  )
                                              )
                                            }
                                          spids: [38907]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: a_deplib
                                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.Case
                                              to_match: {($ Id.VSub_DollarName '$a_deplib')}
                                              arms: [
                                                (case_arm
                                                  pat_list: [{<-l> <Id.Lit_Star '*'>}]
                                                  action: [
                                                    (C {<func_stripname>} {<-l>} {(SQ )} 
                                                      {(DQ ($ Id.VSub_DollarName '$a_deplib'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:name)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_stripname_result'
                                                              )
                                                            }
                                                          spids: [38970]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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
                                                                              name: newdeplibs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                ) <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                                              )
                                                                            }
                                                                          spids: [39017]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: a_deplib
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: {(DQ )}
                                                                          spids: [39025]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [39007 39014 39030 -1]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [38974 38991]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$a_deplib'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {<eval>} 
                                                              {
                                                                (DQ <'libname='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                  ) ($ Id.VSub_DollarName '$libname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                )
                                                              }
                                                            )
                                                            (command.ForEach
                                                              iter_name: i
                                                              iter_words: [
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$sys_lib_search_path'
                                                                  )
                                                                }
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$shlib_search_path'
                                                                  )
                                                                }
                                                              ]
                                                              do_arg_iter: F
                                                              body: 
                                                                (command.DoGroup
                                                                  children: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: potential_libs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (command_sub
                                                                                left_token: 
                                                                                  <Id.Left_Backtick 
'`'
                                                                                  >
                                                                                child: 
                                                                                  (command.Simple
                                                                                    words: [
                                                                                      {<ls>}
                                                                                      {
                                                                                        ($ 
Id.VSub_DollarName '$i'
                                                                                        ) <'/'> ($ Id.VSub_DollarName '$libname') <Id.Lit_LBracket '['> <.-> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                                                      }
                                                                                    ]
                                                                                    redirects: [
                                                                                      (redir
                                                                                        op: 
                                                                                          <
Id.Redir_Great '2>'
                                                                                          >
                                                                                        loc: 
                                                                                          (redir_loc.Fd
                                                                                            fd: 2
                                                                                          )
                                                                                        arg: 
                                                                                          {
                                                                                            <
'/dev/null'
                                                                                            >
                                                                                          }
                                                                                      )
                                                                                    ]
                                                                                    do_fork: T
                                                                                  )
                                                                              )
                                                                            }
                                                                          spids: [39080]
                                                                        )
                                                                      ]
                                                                    )
                                                                    (command.ForEach
                                                                      iter_name: potent_lib
                                                                      iter_words: [
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$potential_libs'
                                                                          )
                                                                        }
                                                                      ]
                                                                      do_arg_iter: F
                                                                      body: 
                                                                        (command.DoGroup
                                                                          children: [
                                                                            (command.ShAssignment
                                                                              pairs: [
                                                                                (assign_pair
                                                                                  lhs: 
                                                                                    (sh_lhs_expr.Name
                                                                                      name: potlib
                                                                                    )
                                                                                  op: 
assign_op.Equal
                                                                                  rhs: 
                                                                                    {
                                                                                      (DQ 
                                                                                        ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                        )
                                                                                      )
                                                                                    }
                                                                                  spids: [39111]
                                                                                )
                                                                              ]
                                                                            )
                                                                            (command.If
                                                                              arms: [
                                                                                (if_arm
                                                                                  cond: [
                                                                                    (command.Sentence
                                                                                      child: 
                                                                                        (command.Pipeline
                                                                                          children: [
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  <
eval
                                                                                                  >
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    (word_part.EscapedLiteral
                                                                                                      token: 
                                                                                                        <
Id.Lit_EscapedChar '\\$'
                                                                                                        >
                                                                                                    ) <'ECHO '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                                                                                    ($ 
Id.VSub_DollarName '$potent_lib'
                                                                                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '2>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
2
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                            (C 
                                                                                              {
                                                                                                ($ 
Id.VSub_DollarName '$SED'
                                                                                                )
                                                                                              } {<10q>}
                                                                                            )
                                                                                            (command.Simple
                                                                                              words: [
                                                                                                {
                                                                                                  ($ 
Id.VSub_DollarName '$EGREP'
                                                                                                  )
                                                                                                }
                                                                                                {
                                                                                                  (DQ 
                                                                                                    ($ 
Id.VSub_DollarName '$match_pattern_regex'
                                                                                                    )
                                                                                                  )
                                                                                                }
                                                                                              ]
                                                                                              redirects: [
                                                                                                (redir
                                                                                                  op: 
                                                                                                    <
Id.Redir_Great '>'
                                                                                                    >
                                                                                                  loc: 
                                                                                                    (redir_loc.Fd
                                                                                                      fd: 
1
                                                                                                    )
                                                                                                  arg: 
                                                                                                    {
                                                                                                      <
'/dev/null'
                                                                                                      >
                                                                                                    }
                                                                                                )
                                                                                              ]
                                                                                              do_fork: 
T
                                                                                            )
                                                                                          ]
                                                                                          negated: F
                                                                                        )
                                                                                      terminator: 
                                                                                        <Id.Op_Semi 
_
                                                                                        >
                                                                                    )
                                                                                  ]
                                                                                  action: [
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
newdeplibs
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: 
                                                                                            {
                                                                                              (DQ 
                                                                                                ($ 
Id.VSub_DollarName '$newdeplibs'
                                                                                                ) <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                                                              )
                                                                                            }
                                                                                          spids: [
39159
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ShAssignment
                                                                                      pairs: [
                                                                                        (assign_pair
                                                                                          lhs: 
                                                                                            (sh_lhs_expr.Name
                                                                                              name: 
a_deplib
                                                                                            )
                                                                                          op: 
assign_op.Equal
                                                                                          rhs: {(DQ )}
                                                                                          spids: [
39167
                                                                                          ]
                                                                                        )
                                                                                      ]
                                                                                    )
                                                                                    (command.ControlFlow
                                                                                      token: 
                                                                                        <
Id.ControlFlow_Break break
                                                                                        >
                                                                                      arg_word: {<2>}
                                                                                    )
                                                                                  ]
                                                                                  spids: [39120 39156]
                                                                                )
                                                                              ]
                                                                            )
                                                                          ]
                                                                        )
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [39039 39051]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$a_deplib'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: droppeddeps
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<yes>}
                                                                  spids: [39204]
                                                                )
                                                              ]
                                                            )
                                                            (C {<echo>})
                                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                                              {
                                                                (DQ 
                                                                  <
'*** Warning: linker path does not have real file for library '
                                                                  > ($ Id.VSub_DollarName '$a_deplib') <.>
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** I have the capability to make that library automatically link in when'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** you link to this library.  But I can only do this if you have a'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** shared version of the library, which you do not appear to have'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (C {<echo>} 
                                                              {
                                                                (DQ 
                                                                  <
'*** because I did check the linker path looking for a file starting'
                                                                  >
                                                                )
                                                              }
                                                            )
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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: [39248 39260]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ <'*** with '> 
                                                                      ($ Id.VSub_DollarName 
'$libname'
                                                                      ) <' and none of the candidates passed a file format test'>
                                                                    )
                                                                  }
                                                                )
                                                                (C {($ Id.VSub_DollarName '$ECHO')} 
                                                                  {
                                                                    (DQ 
                                                                      <
'*** using a regex pattern. Last file checked: '
                                                                      > ($ Id.VSub_DollarName '$potlib')
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [39189 39201]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [38953 38955 39298 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName '$newdeplibs') <' '> ($ Id.VSub_DollarName '$a_deplib')
                                                              )
                                                            }
                                                          spids: [39309]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39301 39302 39317 -1]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                  ]
                                  spids: [38892 38894 39329 -1]
                                )
                                (case_arm
                                  pat_list: [{<none>} {<unknown>} {<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: {(DQ )}
                                          spids: [39344]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s/ -lc$//; s/ -[LR][^ ]*//g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [39349]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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_name: i
                                              iter_words: [
                                                {($ Id.VSub_DollarName '$predeps')}
                                                {($ Id.VSub_DollarName '$postdeps')}
                                              ]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (command_sub
                                                                left_token: <Id.Left_Backtick '`'>
                                                                child: 
                                                                  (command.Pipeline
                                                                    children: [
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$ECHO'
                                                                          )
                                                                        } {(DQ <' '> ($ Id.VSub_DollarName '$tmp_deplibs'))}
                                                                      )
                                                                      (C 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$SED'
                                                                          )
                                                                        } {(DQ <'s,'> ($ Id.VSub_DollarName '$i') <',,'>)}
                                                                      )
                                                                    ]
                                                                    negated: F
                                                                  )
                                                              )
                                                            }
                                                          spids: [39409]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                          ]
                                          spids: [39370 39387]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$tmp_deplibs')}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> <Id.KW_Bang '!'> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\\t'>
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\ '>) <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (C {<echo>})
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {
                                                            (DQ <X> 
                                                              ($ Id.VSub_DollarName 
'$deplibs_check_method'
                                                              )
                                                            )
                                                          } {<Id.Lit_Equals '='>} {(DQ <Xnone>)}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** Warning: inter-library dependencies are not supported in this platform.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [39458 39474]
                                                )
                                              ]
                                              else_action: [
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** Warning: inter-library dependencies are not known to be supported.'
                                                      >
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** All declared inter-library dependencies are being dropped.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:droppeddeps)
                                                  op: assign_op.Equal
                                                  rhs: {<yes>}
                                                  spids: [39504]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39445 39452 39508 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39332 39341 39514 -1]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:versuffix)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$versuffix_save')}
                                  spids: [39520]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:major)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$major_save')}
                                  spids: [39524]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:release)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$release_save')}
                                  spids: [39528]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libname)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$libname_save')}
                                  spids: [39532]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:name)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$name_save')}
                                  spids: [39536]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> 
                                      <Id.Lit_Star '*'>
                                    }
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> 
                                      <Id.Lit_LBracket '['> <012> <Id.Lit_RBracket ']'>
                                    }
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:newdeplibs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ <' '> 
                                                            ($ Id.VSub_DollarName '$newdeplibs')
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s/ -lc / System.ltframework /'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [39570]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39548 39563 39591 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {(DQ ($ Id.VSub_DollarName '$module'))} 
                                                  {<Id.Lit_Equals '='>} {<yes>}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<echo>})
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** Warning: libtool could not satisfy all declared inter-library'
                                                  >
                                                )
                                              }
                                            )
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {
                                                (DQ <'*** dependencies of module '> 
                                                  ($ Id.VSub_DollarName '$libname') <'.  Therefore, libtool will create'>
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** a static module, that should work as long as the dlopening'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<echo>} 
                                              {
                                                (DQ 
                                                  <
'*** application is linked with the -dlopen flag.'
                                                  >
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$global_symbol_pipe'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<echo>})
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** However, this would only work if libtool was able to extract symbol'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ <'*** lists from a program, using '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                          ) <'nm\' or equivalent, but libtool could'>
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ 
                                                          <
'*** not find such a program.  So, this module is probably useless.'
                                                          >
                                                        )
                                                      }
                                                    )
                                                    (C {<echo>} 
                                                      {
                                                        (DQ <'*** '> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\`'>
                                                          ) <'nm\' from GNU binutils and a full rebuild may help.'>
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [39663 39674]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:oldlibs)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$output_objdir'
                                                                ) <'/'> ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext')
                                                              )
                                                            }
                                                          spids: [39731]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<module>}
                                                          spids: [39741]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:build_old_libs)
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [39745]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [39715 39728]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                                      op: assign_op.Equal
                                                      rhs: {<no>}
                                                      spids: [39752]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [39614 39627]
                                        )
                                      ]
                                      else_action: [
                                        (C {<echo>} 
                                          {
                                            (DQ 
                                              <
'*** The inter-library dependencies that have been dropped here will be'
                                              >
                                            )
                                          }
                                        )
                                        (C {<echo>} 
                                          {
                                            (DQ 
                                              <
'*** automatically added whenever a program is linked with this library'
                                              >
                                            )
                                          }
                                        )
                                        (C {<echo>} {(DQ <'*** or is declared to -dlopen it.'>)})
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} 
                                                      {(DQ ($ Id.VSub_DollarName '$allow_undefined'))} {<Id.Lit_Equals '='>} {<no>}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (C {<echo>})
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** Since this library must not contain undefined symbols,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** because either the platform does not support them or'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** it was explicitly requested with -no-undefined,'
                                                      >
                                                    )
                                                  }
                                                )
                                                (C {<echo>} 
                                                  {
                                                    (DQ 
                                                      <
'*** libtool will only create a static version of it.'
                                                      >
                                                    )
                                                  }
                                                )
                                                (command.If
                                                  arms: [
                                                    (if_arm
                                                      cond: [
                                                        (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 name:oldlibs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$output_objdir'
                                                                    ) <'/'> ($ Id.VSub_DollarName '$libname') <.> ($ Id.VSub_DollarName '$libext')
                                                                  )
                                                                }
                                                              spids: [39847]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_libtool_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<module>}
                                                              spids: [39857]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: build_old_libs
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<yes>}
                                                              spids: [39861]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [39831 39844]
                                                    )
                                                  ]
                                                  else_action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: build_libtool_libs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<no>}
                                                          spids: [39868]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [39784 39797]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [39598 39611]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$newdeplibs')}
                                  spids: [39888]
                                )
                              ]
                            )
                          ]
                          spids: [37180 37193]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:newdeplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$newdeplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [39914]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:new_inherited_linker_flags)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> 
                                                    ($ Id.VSub_DollarName 
'$new_inherited_linker_flags'
                                                    )
                                                  )
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [39941]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [39968]
                                )
                              ]
                            )
                          ]
                          spids: [39906 39911 39995 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:new_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [40010]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: path
                      iter_words: [{($ Id.VSub_DollarName '$notinst_path')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                        ($ Id.VSub_DollarName '$objdir') <' '>
                                      ) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [40036 40045 40047 -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 name:new_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$new_libs') <' -L'> 
                                                        ($ Id.VSub_DollarName '$path') <'/'> ($ Id.VSub_DollarName '$objdir')
                                                      )
                                                    }
                                                  spids: [40077]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40065 40074 40086 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40050 40051 40092 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplib')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [40136 40143 40145 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:new_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$new_libs') <' '> 
                                                        ($ Id.VSub_DollarName '$deplib')
                                                      )
                                                    }
                                                  spids: [40151]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40148 40149 40158 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40120 40122 40164 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$new_libs') <' '> 
                                                ($ Id.VSub_DollarName '$deplib')
                                              )
                                            }
                                          spids: [40170]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40167 40168 40177 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:deplibs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$new_libs'))}
                          spids: [40186]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:library_names)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [40197]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_library)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [40200]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dlname)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [40203]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [
                                    (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 name:hardcode_libdirs)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [40247]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dep_rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [40250]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$finalize_rpath'))}
                                          spids: [40253]
                                        )
                                      ]
                                    )
                                    (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 name:rpath)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$compile_rpath') 
                                                    ($ Id.VSub_DollarName '$rpath')
                                                  )
                                                }
                                              spids: [40272]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: libdir
                                      iter_words: [{($ Id.VSub_DollarName '$rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [
                                                            (command.Sentence
                                                              child: 
                                                                (C {<test>} {<-n>} 
                                                                  {
                                                                    (DQ 
                                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                      )
                                                                    )
                                                                  }
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (command.Sentence
                                                                      child: 
                                                                        (C {<test>} {<-z>} 
                                                                          {
                                                                            (DQ 
                                                                              ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                                              )
                                                                            )
                                                                          }
                                                                        )
                                                                      terminator: <Id.Op_Semi _>
                                                                    )
                                                                  ]
                                                                  action: [
                                                                    (command.ShAssignment
                                                                      pairs: [
                                                                        (assign_pair
                                                                          lhs: 
                                                                            (sh_lhs_expr.Name
                                                                              name: hardcode_libdirs
                                                                            )
                                                                          op: assign_op.Equal
                                                                          rhs: 
                                                                            {
                                                                              (DQ 
                                                                                ($ 
Id.VSub_DollarName '$libdir'
                                                                                )
                                                                              )
                                                                            }
                                                                          spids: [40333]
                                                                        )
                                                                      ]
                                                                    )
                                                                  ]
                                                                  spids: [40319 40330]
                                                                )
                                                              ]
                                                              else_action: [
                                                                (command.Case
                                                                  to_match: 
                                                                    {
                                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                                    }
                                                                  arms: [
                                                                    (case_arm
                                                                      pat_list: [
                                                                        {<Id.Lit_Star '*'> 
                                                                          (DQ 
                                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                                          ) <Id.Lit_Star '*'>
                                                                        }
                                                                      ]
                                                                      spids: [40355 40362 40365 -1]
                                                                    )
                                                                    (case_arm
                                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                                      action: [
                                                                        (command.ShAssignment
                                                                          pairs: [
                                                                            (assign_pair
                                                                              lhs: 
                                                                                (sh_lhs_expr.Name
                                                                                  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: [40372]
                                                                            )
                                                                          ]
                                                                        )
                                                                      ]
                                                                      spids: [40368 40369 40380 -1]
                                                                    )
                                                                  ]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40305 40316]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<eval>} 
                                                          {
                                                            (DQ <'flag='> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                              ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\"'>
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:dep_rpath)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$dep_rpath'
                                                                    ) <' '> ($ Id.VSub_DollarName '$flag')
                                                                  )
                                                                }
                                                              spids: [40402]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40291 40302]
                                                )
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$runpath_var'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$perm_rpath') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> 
                                                              (DQ <' '> 
                                                                ($ Id.VSub_DollarName '$libdir') <' '>
                                                              ) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [40437 40444 40446 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: perm_rpath
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$perm_rpath'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir')
                                                                      )
                                                                    }
                                                                  spids: [40452]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [40449 40450 40459 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [40413 40424]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName '$hardcode_libdirs')
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))}
                                                  spids: [40500]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdir_flag_spec_ld'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'dep_rpath='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec_ld') 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [40506 40517]
                                                )
                                              ]
                                              else_action: [
                                                (C {<eval>} 
                                                  {
                                                    (DQ <'dep_rpath='> 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\"'>
                                                      ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                                      (word_part.EscapedLiteral
                                                        token: <Id.Lit_EscapedChar '\\"'>
                                                      )
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40475 40497]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$runpath_var'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$perm_rpath'))}
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rpath)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [40577]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: dir
                                              iter_words: [{($ Id.VSub_DollarName '$perm_rpath')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:rpath)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rpath') 
                                                                ($ Id.VSub_DollarName '$dir') <':'>
                                                              )
                                                            }
                                                          spids: [40592]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {<eval>} 
                                              {($ Id.VSub_DollarName '$runpath_var') 
                                                <Id.Lit_Equals '='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <rpath> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\$'>
                                                ) ($ Id.VSub_DollarName '$runpath_var')
                                              }
                                            )
                                            (C {<export>} {($ Id.VSub_DollarName '$runpath_var')})
                                          ]
                                          spids: [40549 40570]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dep_rpath'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:deplibs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$dep_rpath') <' '> 
                                                    ($ Id.VSub_DollarName '$deplibs')
                                                  )
                                                }
                                              spids: [40631]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40227 40240]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:shlibpath)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$finalize_shlibpath'))}
                                  spids: [40643]
                                )
                              ]
                            )
                            (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 name:shlibpath)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$compile_shlibpath') 
                                            ($ Id.VSub_DollarName '$shlibpath')
                                          )
                                        }
                                      spids: [40662]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$shlibpath'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {($ Id.VSub_DollarName '$shlibpath_var') <Id.Lit_Equals '='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) <shlibpath> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                        ($ Id.VSub_DollarName '$shlibpath_var')
                                      }
                                    )
                                    (C {<export>} {($ Id.VSub_DollarName '$shlibpath_var')})
                                  ]
                                  spids: [40669 40680]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {
                                (DQ <'shared_ext='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$shrext_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {<eval>} 
                              {
                                (DQ <'library_names='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$library_names_spec') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  )
                                )
                              }
                            )
                            (C {<Id.KW_Set set>} {<dummy>} {($ Id.VSub_DollarName '$library_names')})
                            (C {<shift>})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:realname)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_Number '$1'))}
                                  spids: [40736]
                                )
                              ]
                            )
                            (C {<shift>})
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$soname_spec'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ <'soname='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$soname_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [40746 40757]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:soname)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$realname'))}
                                      spids: [40773]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dlname'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:dlname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$soname')}
                                          spids: [40796]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40782 40793]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:lib)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                        ($ Id.VSub_DollarName '$realname')
                                      )
                                    }
                                  spids: [40804]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:linknames)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [40812]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: link
                              do_arg_iter: T
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linknames)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$linknames') <' '> 
                                                ($ Id.VSub_DollarName '$link')
                                              )
                                            }
                                          spids: [40823]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$pic_flag'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: <Id.Left_Backtick '`'>
                                            child: 
                                              (command.Pipeline
                                                children: [
                                                  (C {($ Id.VSub_DollarName '$ECHO')} 
                                                    {(DQ ($ Id.VSub_DollarName '$libobjs'))}
                                                  )
                                                  (C {($ Id.VSub_DollarName '$SP2NL')})
                                                  (C {($ Id.VSub_DollarName '$SED')} 
                                                    {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                                  )
                                                  (C {($ Id.VSub_DollarName '$NL2SP')})
                                                ]
                                                negated: F
                                              )
                                          )
                                        }
                                      spids: [40849]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.AndOr
                              ops: [Id.Op_DAmp]
                              children: [
                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                  {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [40892]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:delfiles)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [40896]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                            )
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$include_expsyms'))}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<cp>} {(DQ ($ Id.VSub_DollarName '$export_symbols'))} 
                                          {
                                            (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.uexp>
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                ($ Id.VSub_DollarName '$libname') <.uexp>
                                              )
                                            }
                                          spids: [40941]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:delfiles)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$delfiles') <' '> 
                                                ($ Id.VSub_DollarName '$export_symbols')
                                              )
                                            }
                                          spids: [40950]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40899 40920]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:orig_export_symbols)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [40962]
                                )
                              ]
                            )
                            (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: [
                                            (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: [
                                                    (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')}
                                                                  )
                                                              )
                                                            )
                                                          } {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<xEXPORTS>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: orig_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$export_symbols'
                                                                )
                                                              )
                                                            }
                                                          spids: [41065]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [41071]
                                                        )
                                                      ]
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: always_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {<yes>}
                                                          spids: [41074]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [41015 41038]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [40987 41008]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [40972 40984 41084 -1]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-z>} 
                                          {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\`'>
                                                  ) ($ Id.VSub_DollarName '$libname') <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$libname') <.exp>
                                                      )
                                                    }
                                                  spids: [41145]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {($ Id.VSub_DollarName '$export_symbols')}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$export_symbols_cmds')}
                                                  spids: [41163]
                                                )
                                              ]
                                            )
                                            (command.Sentence
                                              child: 
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                                      spids: [41167]
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {(SQ <'~'>)}
                                                  spids: [41173]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: cmd
                                              iter_words: [{($ Id.VSub_DollarName '$cmds')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:IFS)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                                          spids: [41191]
                                                        )
                                                      ]
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'cmd='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) ($ Id.VSub_DollarName '$cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                        )
                                                      }
                                                    )
                                                    (C {<func_len>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$cmd'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:len)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_len_result'
                                                              )
                                                            }
                                                          spids: [41215]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (command.Sentence
                                                              child: 
                                                                (command.AndOr
                                                                  ops: [Id.Op_DPipe]
                                                                  children: [
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$len'
                                                                          )
                                                                        )
                                                                      } {<-lt>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                                                    )
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName 
'$max_cmd_len'
                                                                          )
                                                                        )
                                                                      } {<-le>} {<-1>}
                                                                    )
                                                                  ]
                                                                )
                                                              terminator: <Id.Op_Semi _>
                                                            )
                                                          ]
                                                          action: [
                                                            (C {<func_show_eval>} 
                                                              {(DQ ($ Id.VSub_DollarName '$cmd'))} {(SQ <'exit $?'>)}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: skipped_export
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: {<false>}
                                                                  spids: [41260]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [41219 41246]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (C {<func_verbose>} 
                                                          {
                                                            (DQ 
                                                              <
'using reloadable object file for export list...'
                                                              >
                                                            )
                                                          }
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  name: skipped_export
                                                                )
                                                              op: assign_op.Equal
                                                              rhs: {<Id.Lit_Colon ':'>}
                                                              spids: [41278]
                                                            )
                                                          ]
                                                        )
                                                        (command.ControlFlow
                                                          token: <Id.ControlFlow_Break break>
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                                  spids: [41299]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [41305 41332]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41109 41132]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41095 41106]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                            )
                                            (C {<test>} {<-n>} 
                                              {(DQ ($ Id.VSub_DollarName '$include_expsyms'))}
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                          spids: [41383]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$orig_export_symbols'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$orig_export_symbols'))}
                                              spids: [41399]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Pipeline
                                          children: [
                                            (C {($ Id.VSub_DollarName '$ECHO')} 
                                              {(DQ ($ Id.VSub_DollarName '$include_expsyms'))}
                                            )
                                            (command.Simple
                                              words: [{($ Id.VSub_DollarName '$SP2NL')}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$tmp_export_symbols')
                                                      )
                                                    }
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          negated: F
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41359 41380]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 '\\`'>
                                          ) ($ Id.VSub_DollarName '$libname') <'.la\' to tag DATA exports'>
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$SED')}
                                            {<-e>}
                                            {
                                              (SQ 
                                                <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                >
                                              )
                                            }
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName '$export_symbols')}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: 
                                                {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                  ($ Id.VSub_DollarName '$libname') <.filter>
                                                }
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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: [41518]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:export_symbols)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.def>
                                            }
                                          spids: [41531]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (command.Simple
                                          words: [
                                            {($ Id.VSub_DollarName '$SED')}
                                            {<-f>}
                                            {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                              ($ Id.VSub_DollarName '$libname') <.filter>
                                            }
                                          ]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Less '<'>
                                              loc: (redir_loc.Fd fd:0)
                                              arg: {($ Id.VSub_DollarName '$orig_export_symbols')}
                                            )
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$export_symbols')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41430 41457]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [41564]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: test_deplib
                              iter_words: [{($ Id.VSub_DollarName '$deplibs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: 
                                        {(DQ <' '> ($ Id.VSub_DollarName '$convenience') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$test_deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [41590 41597 41599 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:tmp_deplibs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$tmp_deplibs') <' '> 
                                                        ($ Id.VSub_DollarName '$test_deplib')
                                                      )
                                                    }
                                                  spids: [41606]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41602 41603 41614 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:deplibs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$tmp_deplibs'))}
                                  spids: [41623]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$convenience'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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
                                                      name: whole_archive_flag_spec
                                                    )
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [41690]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41644 41679]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:save_libobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$libobjs')}
                                                  spids: [41710]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'libobjs='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'libobjs '> 
                                                  ($ Id.VSub_DollarName '$whole_archive_flag_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DAmp]
                                              children: [
                                                (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                                  {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                                      op: assign_op.Equal
                                                      rhs: (word.Empty)
                                                      spids: [41741]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41696 41707]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:gentop)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                    (${ Id.VSub_Name outputname) <x>
                                                  )
                                                }
                                              spids: [41747]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:generated)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                                    ($ Id.VSub_DollarName '$gentop')
                                                  )
                                                }
                                              spids: [41758]
                                            )
                                          ]
                                        )
                                        (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                          {($ Id.VSub_DollarName '$convenience')}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:libobjs)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                                    ($ Id.VSub_DollarName 
'$func_extract_archives_result'
                                                    )
                                                  )
                                                }
                                              spids: [41774]
                                            )
                                          ]
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                              {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [41797]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41630 41641]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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>} 
                                      {
                                        (DQ <'flag='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$thread_safe_flag_spec') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:linker_flags)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$linker_flags') <' '> 
                                                ($ Id.VSub_DollarName '$flag')
                                              )
                                            }
                                          spids: [41843]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41807 41830]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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')})
                                        (command.Subshell
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp Id.Op_DAmp]
                                              children: [
                                                (C {<cd>} {($ Id.VSub_DollarName '$output_objdir')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {(${ Id.VSub_Name realname) <U>}
                                                )
                                                (C {($ Id.VSub_DollarName '$MV')} 
                                                  {($ Id.VSub_DollarName '$realname')} {(${ Id.VSub_Name realname) <U>}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41859 41872]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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>} 
                                              {
                                                (DQ <'test_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$module_expsym_cmds') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  )
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$module_expsym_cmds')}
                                                  spids: [41981]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [41947 41968]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {
                                            (DQ <'test_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) ($ Id.VSub_DollarName '$module_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$module_cmds')}
                                              spids: [41998]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [41920 41944]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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>} 
                                          {
                                            (DQ <'test_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) ($ Id.VSub_DollarName '$archive_expsym_cmds') 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$archive_expsym_cmds')}
                                              spids: [42042]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [42008 42029]
                                    )
                                  ]
                                  else_action: [
                                    (C {<eval>} 
                                      {
                                        (DQ <'test_cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cmds)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$archive_cmds')}
                                          spids: [42059]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:len)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                                  spids: [42099]
                                                )
                                              ]
                                            )
                                            (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: [42070 42130]
                                )
                              ]
                              else_action: [
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                                )
                                                (C {<test>} {<-z>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$whole_archive_flag_spec'
                                                      )
                                                    )
                                                  }
                                                )
                                              ]
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_libobjs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$libobjs')}
                                              spids: [42208]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [42184 42205]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_output)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$output')}
                                      spids: [42215]
                                    )
                                  ]
                                )
                                (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$output'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:output_la)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                      spids: [42226]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:test_cmds)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [42239]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [42242]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:objlist)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [42245]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:last_robj)
                                      op: assign_op.Equal
                                      rhs: (word.Empty)
                                      spids: [42248]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:k)
                                      op: assign_op.Equal
                                      rhs: {<1>}
                                      spids: [42251]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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 name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name output_objdir) <'/'> 
                                                  (${ Id.VSub_Name output_la) <.lnkscript>
                                                }
                                              spids: [42298]
                                            )
                                          ]
                                        )
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating GNU ld script: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                        (command.Simple
                                          words: [{<echo>} {(SQ <'INPUT ('>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ForEach
                                          iter_name: obj
                                          iter_words: [{($ Id.VSub_DollarName '$save_libobjs')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (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')}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                        )
                                        (command.Simple
                                          words: [{<echo>} {(SQ <')'>)}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_DGreat '>>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:delfiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$delfiles') <' '> 
                                                    ($ Id.VSub_DollarName '$output')
                                                  )
                                                }
                                              spids: [42365]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [42256 42295]
                                    )
                                    (if_arm
                                      cond: [
                                        (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 name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {(${ Id.VSub_Name output_objdir) <'/'> 
                                                  (${ Id.VSub_Name output_la) <.lnk>
                                                }
                                              spids: [42417]
                                            )
                                          ]
                                        )
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating linker input file list: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                        (command.Simple
                                          words: [{<Id.Lit_Colon ':'>}]
                                          redirects: [
                                            (redir
                                              op: <Id.Redir_Great '>'>
                                              loc: (redir_loc.Fd fd:1)
                                              arg: {($ Id.VSub_DollarName '$output')}
                                            )
                                          ]
                                          do_fork: T
                                        )
                                        (C {<Id.KW_Set set>} {<x>} 
                                          {($ Id.VSub_DollarName '$save_libobjs')}
                                        )
                                        (C {<shift>})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:firstobj)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [42453]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (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 name:firstobj)
                                                      op: assign_op.Equal
                                                      rhs: {(DQ ($ Id.VSub_Number '$1') <' '>)}
                                                      spids: [42472]
                                                    )
                                                  ]
                                                )
                                                (C {<shift>})
                                              ]
                                              spids: [42456 42469]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: obj
                                          do_arg_iter: T
                                          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')}
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:delfiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$delfiles') <' '> 
                                                    ($ Id.VSub_DollarName '$output')
                                                  )
                                                }
                                              spids: [42507]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: 
                                                {($ Id.VSub_DollarName '$firstobj') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$file_list_spec') ($ Id.VSub_DollarName '$output') 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  )
                                                }
                                              spids: [42515]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [42373 42414]
                                    )
                                  ]
                                  else_action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$save_libobjs'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<func_verbose>} 
                                              {(DQ <'creating reloadable object files...'>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                      ($ Id.VSub_DollarName '$output_la') <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName '$objext')
                                                    }
                                                  spids: [42547]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'test_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                            )
                                            (C {<func_len>} 
                                              {(DQ <' '> ($ Id.VSub_DollarName '$test_cmds'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:len0)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                                  spids: [42577]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:len)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$len0')}
                                                  spids: [42581]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: obj
                                              iter_words: [{($ Id.VSub_DollarName '$save_libobjs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_len>} 
                                                      {(DQ <' '> ($ Id.VSub_DollarName '$obj'))}
                                                    )
                                                    (C {<func_arith>} {($ Id.VSub_DollarName '$len')} 
                                                      {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:len)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_arith_result'
                                                              )
                                                            }
                                                          spids: [42619]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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: [42623 42652]
                                                        )
                                                      ]
                                                      else_action: [
                                                        (command.If
                                                          arms: [
                                                            (if_arm
                                                              cond: [
                                                                (command.Sentence
                                                                  child: 
                                                                    (C {<test>} 
                                                                      {
                                                                        (DQ 
                                                                          ($ Id.VSub_DollarName '$k')
                                                                        )
                                                                      } {<-eq>} {<1>}
                                                                    )
                                                                  terminator: <Id.Op_Semi _>
                                                                )
                                                              ]
                                                              action: [
                                                                (command.ShAssignment
                                                                  pairs: [
                                                                    (assign_pair
                                                                      lhs: 
                                                                        (sh_lhs_expr.Name
                                                                          name: reload_objs
                                                                        )
                                                                      op: assign_op.Equal
                                                                      rhs: 
                                                                        {
                                                                          ($ Id.VSub_DollarName 
'$objlist'
                                                                          )
                                                                        }
                                                                      spids: [42697]
                                                                    )
                                                                  ]
                                                                )
                                                                (C {<eval>} 
                                                                  {
                                                                    (DQ <'concat_cmds='> 
                                                                      (word_part.EscapedLiteral
                                                                        token: 
                                                                          <Id.Lit_EscapedChar '\\"'>
                                                                      ) ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                              spids: [42676 42690]
                                                            )
                                                          ]
                                                          else_action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: reload_objs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$objlist'
                                                                        ) <' '> ($ Id.VSub_DollarName '$last_robj')
                                                                      )
                                                                    }
                                                                  spids: [42722]
                                                                )
                                                              ]
                                                            )
                                                            (C {<eval>} 
                                                              {
                                                                (DQ <'concat_cmds='> 
                                                                  (word_part.EscapedLiteral
                                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'concat_cmds~'> 
                                                                  ($ Id.VSub_DollarName 
'$reload_cmds'
                                                                  ) <'~'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'RM '> 
                                                                  ($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                                )
                                                              }
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:last_robj)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$output_la') <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName '$objext')
                                                                }
                                                              spids: [42749]
                                                            )
                                                          ]
                                                        )
                                                        (C {<func_arith>} {($ Id.VSub_DollarName '$k')} 
                                                          {<Id.Lit_Other '+'>} {<1>}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:k)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                  )
                                                                }
                                                              spids: [42770]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:output)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$output_objdir'
                                                                  ) <'/'> ($ Id.VSub_DollarName '$output_la') <-> (${ Id.VSub_Name k) <.> ($ Id.VSub_DollarName '$objext')
                                                                }
                                                              spids: [42774]
                                                            )
                                                          ]
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:objlist)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (DQ <' '> 
                                                                    ($ Id.VSub_DollarName '$obj')
                                                                  )
                                                                }
                                                              spids: [42786]
                                                            )
                                                          ]
                                                        )
                                                        (C {<func_len>} 
                                                          {
                                                            (DQ <' '> 
                                                              ($ Id.VSub_DollarName '$last_robj')
                                                            )
                                                          }
                                                        )
                                                        (C {<func_arith>} 
                                                          {($ Id.VSub_DollarName '$len0')} {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                                        )
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:len)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  ($ Id.VSub_DollarName 
'$func_arith_result'
                                                                  )
                                                                }
                                                              spids: [42810]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$concat_cmds') 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [42842]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:reload_objs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$objlist') <' '> 
                                                        ($ Id.VSub_DollarName '$last_robj')
                                                      )
                                                    }
                                                  spids: [42847]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'concat_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{concat_cmds}'> 
                                                  ($ Id.VSub_DollarName '$reload_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$last_robj'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'concat_cmds='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{concat_cmds}~'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                          ) <'RM '> ($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [42867 42878]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:delfiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$delfiles') <' '> 
                                                        ($ Id.VSub_DollarName '$output')
                                                      )
                                                    }
                                                  spids: [42898]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [42526 42537]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:output)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [42910]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C 
                                                  {
                                                    (braced_var_sub
                                                      token: <Id.VSub_Name skipped_export>
                                                      suffix_op: 
                                                        (suffix_op.Unary
                                                          op_id: Id.VTest_Hyphen
                                                          arg_word: {<false>}
                                                        )
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<func_verbose>} 
                                              {
                                                (DQ <'generating symbol list for '> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\`'>
                                                  ) ($ Id.VSub_DollarName '$libname') <'.la\''>
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:export_symbols)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$libname') <.exp>
                                                      )
                                                    }
                                                  spids: [42939]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {($ Id.VSub_DollarName '$export_symbols')}
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$output')}
                                                  spids: [42957]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$concat_cmds') 
                                                          <Id.Lit_TildeLike '~'>
                                                        }
                                                      spids: [42975]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'concat_cmds='> 
                                                  (word_part.EscapedLiteral
                                                    token: <Id.Lit_EscapedChar '\\"'>
                                                  ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                                  ($ Id.VSub_DollarName '$export_symbols_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                )
                                              }
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-n>} 
                                                          {(DQ ($ Id.VSub_DollarName '$last_robj'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'concat_cmds='> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\"'>
                                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'concat_cmds~'> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\$'>
                                                          ) <'RM '> ($ Id.VSub_DollarName '$last_robj') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                        )
                                                      }
                                                    )
                                                  ]
                                                  spids: [42992 43003]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [42917 42926]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$save_libobjs'))})
                                        (C {<func_verbose>} 
                                          {
                                            (DQ <'creating a temporary reloadable object file: '> 
                                              ($ Id.VSub_DollarName '$output')
                                            )
                                          }
                                        )
                                      ]
                                    )
                                    (command.Sentence
                                      child: 
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:save_ifs)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                              spids: [43051]
                                            )
                                          ]
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(SQ <'~'>)}
                                          spids: [43057]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: cmd
                                      iter_words: [{($ Id.VSub_DollarName '$concat_cmds')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:IFS)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                                  spids: [43075]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_silent')})
                                                (BraceGroup
                                                  children: [
                                                    (C {<func_quote_for_expand>} 
                                                      {(DQ ($ Id.VSub_DollarName '$cmd'))}
                                                    )
                                                    (C {<eval>} 
                                                      {
                                                        (DQ <'func_echo '> 
                                                          ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                            (command.AndOr
                                              ops: [Id.Op_DPipe Id.Op_DPipe]
                                              children: [
                                                (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                                                (BraceGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:lt_exit)
                                                          op: assign_op.Equal
                                                          rhs: {($ Id.VSub_QMark '$?')}
                                                          spids: [43121]
                                                        )
                                                      ]
                                                    )
                                                    (command.If
                                                      arms: [
                                                        (if_arm
                                                          cond: [
                                                            (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'))}
                                                                    )
                                                                  ]
                                                                )
                                                            )
                                                          ]
                                                          spids: [43130 43143]
                                                        )
                                                      ]
                                                    )
                                                    (command.ControlFlow
                                                      token: <Id.ControlFlow_Exit exit>
                                                      arg_word: {($ Id.VSub_DollarName '$lt_exit')}
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                          spids: [43202]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$export_symbols_regex'
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (C 
                                                      {
                                                        (braced_var_sub
                                                          token: <Id.VSub_Name skipped_export>
                                                          suffix_op: 
                                                            (suffix_op.Unary
                                                              op_id: Id.VTest_Hyphen
                                                              arg_word: {<false>}
                                                            )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (C {<func_show_eval>} 
                                              {
                                                (SQ 
                                                  <
'$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
                                                  >
                                                )
                                              }
                                            )
                                            (C {<func_show_eval>} 
                                              {(SQ <'$MV "${export_symbols}T" "$export_symbols"'>)}
                                            )
                                          ]
                                          spids: [43209 43228]
                                        )
                                      ]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (command.Sentence
                                          child: 
                                            (C 
                                              {
                                                (braced_var_sub
                                                  token: <Id.VSub_Name skipped_export>
                                                  suffix_op: 
                                                    (suffix_op.Unary
                                                      op_id: Id.VTest_Hyphen
                                                      arg_word: {<false>}
                                                    )
                                                )
                                              }
                                            )
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      action: [
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$include_expsyms'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:tmp_export_symbols)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName '$export_symbols')
                                                          )
                                                        }
                                                      spids: [43288]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                          )
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: tmp_export_symbols
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                                )
                                                              )
                                                            }
                                                          spids: [43304]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (command.Pipeline
                                                      children: [
                                                        (C {($ Id.VSub_DollarName '$ECHO')} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$include_expsyms'
                                                              )
                                                            )
                                                          }
                                                        )
                                                        (command.Simple
                                                          words: [{($ Id.VSub_DollarName '$SP2NL')}]
                                                          redirects: [
                                                            (redir
                                                              op: <Id.Redir_DGreat '>>'>
                                                              loc: (redir_loc.Fd fd:1)
                                                              arg: 
                                                                {
                                                                  (DQ 
                                                                    ($ Id.VSub_DollarName 
'$tmp_export_symbols'
                                                                    )
                                                                  )
                                                                }
                                                            )
                                                          ]
                                                          do_fork: T
                                                        )
                                                      ]
                                                      negated: F
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [43264 43285]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (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 '\\`'>
                                                      ) ($ Id.VSub_DollarName '$libname') <'.la\' to tag DATA exports'>
                                                    )
                                                  }
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$SED')}
                                                        {<-e>}
                                                        {
                                                          (SQ 
                                                            <
'/[ ,]DATA/!d;s,\\(.*\\)\\([ \\,].*\\),s|^\\1$|\\1\\2|,'
                                                            >
                                                          )
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            }
                                                        )
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {($ Id.VSub_DollarName '$output_objdir') 
                                                              <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name 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: [43407]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:export_symbols)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {($ Id.VSub_DollarName '$output_objdir') 
                                                          <'/'> ($ Id.VSub_DollarName '$libname') <.def>
                                                        }
                                                      spids: [43420]
                                                    )
                                                  ]
                                                )
                                                (command.AndOr
                                                  ops: [Id.Op_DPipe]
                                                  children: [
                                                    (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$SED')}
                                                        {<-f>}
                                                        {($ Id.VSub_DollarName '$output_objdir') 
                                                          <'/'> ($ Id.VSub_DollarName '$libname') <.filter>
                                                        }
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Less '<'>
                                                          loc: (redir_loc.Fd fd:0)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$orig_export_symbols'
                                                              )
                                                            }
                                                        )
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [43335 43346]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [43252 43261]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:libobjs)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$output')}
                                      spids: [43456]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:output)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$save_output')}
                                      spids: [43464]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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>} 
                                          {
                                            (DQ <'libobjs='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'libobjs '> 
                                              ($ Id.VSub_DollarName '$whole_archive_flag_spec') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                            )
                                          }
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DAmp]
                                          children: [
                                            (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                              {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:libobjs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [43520]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [43469 43490]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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: [
                                                (command.Sentence
                                                  child: 
                                                    (command.AndOr
                                                      ops: [Id.Op_DAmp]
                                                      children: [
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName '$export_symbols')
                                                            )
                                                          }
                                                        )
                                                        (C {<test>} {<-n>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$module_expsym_cmds'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      ]
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:cmds)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          ($ Id.VSub_DollarName '$module_expsym_cmds')
                                                        }
                                                      spids: [43590]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [43566 43587]
                                            )
                                          ]
                                          else_action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$module_cmds')}
                                                  spids: [43597]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [43539 43563]
                                    )
                                  ]
                                  else_action: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (command.AndOr
                                                  ops: [Id.Op_DAmp]
                                                  children: [
                                                    (C {<test>} {<-n>} 
                                                      {(DQ ($ Id.VSub_DollarName '$export_symbols'))}
                                                    )
                                                    (C {<test>} {<-n>} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$archive_expsym_cmds'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:cmds)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$archive_expsym_cmds')}
                                                  spids: [43631]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [43607 43628]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:cmds)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$archive_cmds')}
                                              spids: [43638]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$delfiles'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ <'cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'cmds~'> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\$'>
                                          ) <'RM '> ($ Id.VSub_DollarName '$delfiles') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                  ]
                                  spids: [43652 43663]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dlprefiles'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:gentop)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                                (${ Id.VSub_Name outputname) <x>
                                              )
                                            }
                                          spids: [43706]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:generated)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                                ($ Id.VSub_DollarName '$gentop')
                                              )
                                            }
                                          spids: [43717]
                                        )
                                      ]
                                    )
                                    (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                      {($ Id.VSub_DollarName '$dlprefiles')}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:libobjs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                                ($ Id.VSub_DollarName '$func_extract_archives_result')
                                              )
                                            }
                                          spids: [43733]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$libobjs'))} 
                                          {<Id.Lit_Equals '='>} {(DQ <'X '>)}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:libobjs)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [43756]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [43692 43703]
                                )
                              ]
                            )
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:save_ifs)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$IFS'))}
                                      spids: [43763]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(SQ <'~'>)}
                                  spids: [43769]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: cmd
                              iter_words: [{($ Id.VSub_DollarName '$cmds')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:IFS)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                          spids: [43787]
                                        )
                                      ]
                                    )
                                    (C {<eval>} 
                                      {
                                        (DQ <'cmd='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$cmd') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                        )
                                      }
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_silent')})
                                        (BraceGroup
                                          children: [
                                            (C {<func_quote_for_expand>} 
                                              {(DQ ($ Id.VSub_DollarName '$cmd'))}
                                            )
                                            (C {<eval>} 
                                              {
                                                (DQ <'func_echo '> 
                                                  ($ Id.VSub_DollarName 
'$func_quote_for_expand_result'
                                                  )
                                                )
                                              }
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (C {<eval>} {(DQ ($ Id.VSub_DollarName '$cmd'))})
                                        (BraceGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:lt_exit)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_QMark '$?')}
                                                  spids: [43843]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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'))}
                                                            )
                                                          ]
                                                        )
                                                    )
                                                  ]
                                                  spids: [43852 43865]
                                                )
                                              ]
                                            )
                                            (command.ControlFlow
                                              token: <Id.ControlFlow_Exit exit>
                                              arg_word: {($ Id.VSub_DollarName '$lt_exit')}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:IFS)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$save_ifs'))}
                                  spids: [43924]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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')})
                                        (command.Subshell
                                          child: 
                                            (command.AndOr
                                              ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp]
                                              children: [
                                                (C {<cd>} {($ Id.VSub_DollarName '$output_objdir')})
                                                (C {($ Id.VSub_DollarName '$RM')} 
                                                  {(${ Id.VSub_Name realname) <T>}
                                                )
                                                (C {($ Id.VSub_DollarName '$MV')} 
                                                  {($ Id.VSub_DollarName '$realname')} {(${ Id.VSub_Name realname) <T>}
                                                )
                                                (C {($ Id.VSub_DollarName '$MV')} 
                                                  {(${ Id.VSub_Name realname) <U>} {($ Id.VSub_DollarName '$realname')}
                                                )
                                              ]
                                            )
                                        )
                                        (command.ControlFlow
                                          token: <Id.ControlFlow_Exit exit>
                                          arg_word: {($ Id.VSub_QMark '$?')}
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [44014 44025]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [44000 44011]
                                        )
                                      ]
                                    )
                                    (command.ControlFlow
                                      token: <Id.ControlFlow_Exit exit>
                                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                                    )
                                  ]
                                  spids: [43935 43948]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: linkname
                              iter_words: [{($ Id.VSub_DollarName '$linknames')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [44067 44083]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:dlname)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$soname'))}
                                          spids: [44140]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [44108 44133]
                                )
                              ]
                            )
                          ]
                          spids: [40211 40224]
                        )
                      ]
                    )
                  ]
                  spids: [34648 34649 44152 -1]
                )
                (case_arm
                  pat_list: [{<obj>}]
                  action: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 '\\`'>) 
                                  <'-dlopen\' is ignored for objects'>
                                )
                              }
                            )
                          ]
                          spids: [44160 44185]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$deplibs'))}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-l> <Id.Lit_Star '*'>
                            }
                            {<Id.Lit_Star '*'> 
                              (word_part.EscapedLiteral
                                token: <Id.Lit_EscapedChar '\\ '>
                              ) <-L> <Id.Lit_Star '*'>
                            }
                          ]
                          action: [
                            (C {<func_warning>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  <'-l\' and '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) <'-L\' are ignored for objects'>
                                )
                              }
                            )
                          ]
                          spids: [44210 44221 44233 -1]
                        )
                      ]
                    )
                    (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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>
                                      ) ($ Id.VSub_DollarName '$output') <'\' from non-libtool objects'>
                                    )
                                  }
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$output')}
                                  spids: [44360]
                                )
                              ]
                            )
                            (C {<func_lo2o>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:obj)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_lo2o_result')}
                                  spids: [44371]
                                )
                              ]
                            )
                          ]
                          spids: [44331 44333 44375 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libobj)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [44382]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:obj)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$output'))}
                                  spids: [44385]
                                )
                              ]
                            )
                          ]
                          spids: [44378 44379 44391 -1]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (C {($ Id.VSub_DollarName '$RM')} {($ Id.VSub_DollarName '$obj')} 
                          {($ Id.VSub_DollarName '$libobj')}
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [44430]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:gentop)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [44433]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wl)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [44448]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$convenience'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$whole_archive_flag_spec'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ <'tmp_whole_archive_flags='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) ($ Id.VSub_DollarName '$whole_archive_flag_spec') 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {($ Id.VSub_DollarName '$reload_objs') 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                              ) 
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                                        {
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$tmp_whole_archive_flags'
                                                            )
                                                          )
                                                        }
                                                      )
                                                      (C {($ Id.VSub_DollarName '$SED')} 
                                                        {(SQ <'s|,| |g'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [44490]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [44466 44477]
                                )
                              ]
                              else_action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:gentop)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            (${ Id.VSub_Name obj) <x>
                                          )
                                        }
                                      spids: [44515]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:generated)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                            ($ Id.VSub_DollarName '$gentop')
                                          )
                                        }
                                      spids: [44526]
                                    )
                                  ]
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                  {($ Id.VSub_DollarName '$convenience')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:reload_conv_objs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$reload_objs') <' '> 
                                            ($ Id.VSub_DollarName '$func_extract_archives_result')
                                          )
                                        }
                                      spids: [44542]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                          spids: [44452 44463]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name 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 ($ Id.VSub_DollarName '$libobjs'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SP2NL')})
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {
                                          (DQ <'/'> <Id.Lit_Other '\\'> <.> (${ Id.VSub_Name libext) 
                                            <Id.Lit_Other '$'> <'/d; /'> <Id.Lit_Other '\\'> <.lib> <Id.Lit_Other '$'> <'/d; '> ($ Id.VSub_DollarName '$lo2o')
                                          )
                                        }
                                      )
                                      (C {($ Id.VSub_DollarName '$NL2SP')})
                                    ]
                                    negated: F
                                  )
                              ) (DQ <' '> ($ Id.VSub_DollarName '$reload_conv_objs'))
                            }
                          spids: [44561]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:output)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$obj'))}
                          spids: [44618]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$reload_cmds'))} 
                      {(SQ <'exit $?'>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$libobj'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [44654 44665]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [44640 44651]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [
                                    (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: [44705 44716]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                            )
                          ]
                          spids: [44688 44702]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:reload_objs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$libobjs') <' '> 
                                        ($ Id.VSub_DollarName '$reload_conv_objs')
                                      )
                                    }
                                  spids: [44786]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$libobj'))}
                                  spids: [44794]
                                )
                              ]
                            )
                            (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$reload_cmds'))} 
                              {(SQ <'exit $?'>)}
                            )
                          ]
                          spids: [44755 44779]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [44815 44826]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [44156 44157 44845 -1]
                )
                (case_arm
                  pat_list: [{<prog>}]
                  action: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                          action: [
                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                              {(DQ ($ Id.VSub_DollarName '$output'))}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:output)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_stripname_result') <.exe>}
                                  spids: [44879]
                                )
                              ]
                            )
                          ]
                          spids: [44860 44863 44882 -1]
                        )
                      ]
                    )
                    (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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'-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 '\\`'>) 
                              <'LT_INIT([dlopen])\' not used. Assuming no dlopen support.'>
                            )
                          }
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-rhapsody> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin1.> <Id.Lit_LBracket '['> 
                              <012> <Id.Lit_RBracket ']'>
                            }
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [45024]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName '$finalize_deplibs'))
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s/ -lc / System.ltframework /'>)}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [45045]
                                )
                              ]
                            )
                          ]
                          spids: [45002 45017 45066 -1]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-darwin> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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
                                            token: <Id.VSub_Name MACOSX_DEPLOYMENT_TARGET>
                                            suffix_op: 
                                              (suffix_op.Unary
                                                op_id: Id.VTest_Hyphen
                                                arg_word: {<10.0>}
                                              )
                                          )
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<10.> <Id.Lit_LBracket '['> <0123> <Id.Lit_RBracket ']'>}
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$compile_command') 
                                                        <' '> (${ Id.VSub_Name wl) <-bind_at_load>
                                                      )
                                                    }
                                                  spids: [45131]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$finalize_command') 
                                                        <' '> (${ Id.VSub_Name wl) <-bind_at_load>
                                                      )
                                                    }
                                                  spids: [45142]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45124 45128 45153 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45096 45110]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ <' '> ($ Id.VSub_DollarName '$compile_deplibs'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [45166]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_deplibs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {
                                                  (DQ <' '> ($ Id.VSub_DollarName '$finalize_deplibs'))
                                                }
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {
                                                  (SQ 
                                                    <
's% \\([^ $]*\\).ltframework% -framework \\1%g'
                                                    >
                                                  )
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [45193]
                                )
                              ]
                            )
                          ]
                          spids: [45080 45085 45220 -1]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:new_libs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [45236]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: path
                      iter_words: [{($ Id.VSub_DollarName '$notinst_path')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> 
                                      (DQ <' -L'> ($ Id.VSub_DollarName '$path') <'/'> 
                                        ($ Id.VSub_DollarName '$objdir') <' '>
                                      ) <Id.Lit_Star '*'>
                                    }
                                  ]
                                  spids: [45262 45271 45273 -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 name:new_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$new_libs') <' -L'> 
                                                        ($ Id.VSub_DollarName '$path') <'/'> ($ Id.VSub_DollarName '$objdir')
                                                      )
                                                    }
                                                  spids: [45303]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45291 45300 45312 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45276 45277 45318 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ForEach
                      iter_name: deplib
                      iter_words: [{($ Id.VSub_DollarName '$compile_deplibs')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$deplib')}
                              arms: [
                                (case_arm
                                  pat_list: [{<-L> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$new_libs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$deplib') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [45362 45369 45371 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:new_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$new_libs') <' '> 
                                                        ($ Id.VSub_DollarName '$deplib')
                                                      )
                                                    }
                                                  spids: [45377]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45374 45375 45384 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45346 45348 45390 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:new_libs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$new_libs') <' '> 
                                                ($ Id.VSub_DollarName '$deplib')
                                              )
                                            }
                                          spids: [45396]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45393 45394 45403 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_deplibs)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$new_libs'))}
                          spids: [45412]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$compile_command') <' '> 
                                ($ Id.VSub_DollarName '$compile_deplibs')
                              )
                            }
                          spids: [45420]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ ($ Id.VSub_DollarName '$finalize_command') <' '> 
                                ($ Id.VSub_DollarName '$finalize_deplibs')
                              )
                            }
                          spids: [45428]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$rpath') 
                                      ($ Id.VSub_DollarName '$xrpath')
                                    )
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ForEach
                              iter_name: libdir
                              iter_words: [
                                {($ Id.VSub_DollarName '$rpath')}
                                {($ Id.VSub_DollarName '$xrpath')}
                              ]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$finalize_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [45484 45491 45493 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$finalize_rpath') 
                                                        <' '> ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [45499]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45496 45497 45506 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                          spids: [45437 45449]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rpath)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [45523]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hardcode_libdirs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [45526]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [
                        {($ Id.VSub_DollarName '$compile_rpath')}
                        {($ Id.VSub_DollarName '$finalize_rpath')}
                      ]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                          spids: [45585]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [45571 45582]
                                                )
                                              ]
                                              else_action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [45607 45614 45617 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  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: [45624]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [45620 45621 45632 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45557 45568]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {
                                            (DQ <'flag='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:rpath)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$rpath') <' '> 
                                                    ($ Id.VSub_DollarName '$flag')
                                                  )
                                                }
                                              spids: [45654]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45543 45554]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: {(DQ ($ Id.VSub_DollarName '$perm_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [45689 45696 45698 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:perm_rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$perm_rpath') <' '> 
                                                        ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [45704]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45701 45702 45711 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45665 45676]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-mingw> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-pw32> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-> <Id.Lit_Star '*'> <-os2> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <-cegcc> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:testbindir)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (command_sub
                                                left_token: <Id.Left_Backtick '`'>
                                                child: 
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(${ Id.VSub_Name ECHO)} 
                                                        {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                      )
                                                      (C {(${ Id.VSub_Name SED)} {<-e>} 
                                                        {(SQ <'s*/lib$*/bin*'>)}
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                              )
                                            }
                                          spids: [45765]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$libdir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [45800 45807 45809 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$libdir')}
                                                  spids: [45816]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45812 45814 45818 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dllsearchpath') 
                                                        <':'> ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [45824]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45821 45822 45830 -1]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {<Id.Lit_Colon ':'> ($ Id.VSub_DollarName '$dllsearchpath') 
                                          <Id.Lit_Colon ':'>
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <':'> ($ Id.VSub_DollarName '$testbindir') <':'>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [45845 45852 45854 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Colon ':'> <Id.Lit_Colon ':'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$testbindir')}
                                                  spids: [45861]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45857 45859 45863 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dllsearchpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$dllsearchpath') 
                                                        <':'> ($ Id.VSub_DollarName '$testbindir')
                                                      )
                                                    }
                                                  spids: [45869]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45866 45867 45875 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45727 45762 45881 -1]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_separator'))}
                                    )
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))})
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))}
                                  spids: [45919]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {
                                (DQ <'rpath='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) <' '> ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [45894 45916]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_rpath)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$rpath'))}
                          spids: [45939]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rpath)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [45946]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:hardcode_libdirs)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [45949]
                        )
                      ]
                    )
                    (command.ForEach
                      iter_name: libdir
                      iter_words: [{($ Id.VSub_DollarName '$finalize_rpath')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-n>} 
                                                  {
                                                    (DQ 
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      )
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} {<-z>} 
                                                          {
                                                            (DQ 
                                                              ($ Id.VSub_DollarName 
'$hardcode_libdirs'
                                                              )
                                                            )
                                                          }
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: 
                                                            (sh_lhs_expr.Name
                                                              name: hardcode_libdirs
                                                            )
                                                          op: assign_op.Equal
                                                          rhs: {(DQ ($ Id.VSub_DollarName '$libdir'))}
                                                          spids: [46006]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [45992 46003]
                                                )
                                              ]
                                              else_action: [
                                                (command.Case
                                                  to_match: 
                                                    {
                                                      ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                      ) ($ Id.VSub_DollarName '$hardcode_libdirs') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                    }
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_Star '*'> 
                                                          (DQ 
                                                            ($ Id.VSub_DollarName 
'$hardcode_libdir_separator'
                                                            ) ($ Id.VSub_DollarName '$libdir') ($ Id.VSub_DollarName '$hardcode_libdir_separator')
                                                          ) <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      spids: [46028 46035 46038 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: 
                                                                (sh_lhs_expr.Name
                                                                  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: [46045]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [46041 46042 46053 -1]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [45978 45989]
                                        )
                                      ]
                                      else_action: [
                                        (C {<eval>} 
                                          {
                                            (DQ <'flag='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              )
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:rpath)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$rpath') <' '> 
                                                    ($ Id.VSub_DollarName '$flag')
                                                  )
                                                }
                                              spids: [46075]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [45964 45975]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.Case
                                      to_match: 
                                        {(DQ ($ Id.VSub_DollarName '$finalize_perm_rpath') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> 
                                              (DQ <' '> ($ Id.VSub_DollarName '$libdir') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          spids: [46110 46117 46119 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:finalize_perm_rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$finalize_perm_rpath') <' '> ($ Id.VSub_DollarName '$libdir')
                                                      )
                                                    }
                                                  spids: [46125]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [46122 46123 46132 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46086 46097]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DAmp]
                                  children: [
                                    (C {<test>} {<-n>} 
                                      {(DQ ($ Id.VSub_DollarName '$hardcode_libdir_separator'))}
                                    )
                                    (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))})
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:libdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$hardcode_libdirs'))}
                                  spids: [46173]
                                )
                              ]
                            )
                            (C {<eval>} 
                              {
                                (DQ <'rpath='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) <' '> ($ Id.VSub_DollarName '$hardcode_libdir_flag_spec') 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  )
                                )
                              }
                            )
                          ]
                          spids: [46148 46170]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_rpath)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$rpath'))}
                          spids: [46193]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [46230]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$finalize_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SP2NL')})
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$lo2o'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$NL2SP')})
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [46258]
                                )
                              ]
                            )
                          ]
                          spids: [46200 46223]
                        )
                      ]
                    )
                    (C {<func_generate_dlsyms>} {(DQ ($ Id.VSub_DollarName '$outputname'))} 
                      {(DQ <'@PROGRAM@'>)} {(DQ <no>)}
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [46310 46321]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:wrappers_required)
                          op: assign_op.Equal
                          rhs: {<yes>}
                          spids: [46339]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$host')}
                      arms: [
                        (case_arm
                          pat_list: [
                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'>}
                            {<Id.Lit_Star '*'> <mingw32ce> <Id.Lit_Star '*'>}
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:wrappers_required)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [46366]
                                )
                              ]
                            )
                          ]
                          spids: [46350 46359 46370 -1]
                        )
                        (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: [
                                    (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 name:wrappers_required)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [46403]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46386 46400]
                                )
                              ]
                            )
                          ]
                          spids: [46373 46383 46410 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:wrappers_required)
                                          op: assign_op.Equal
                                          rhs: {<no>}
                                          spids: [46446]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46417 46443]
                                )
                              ]
                            )
                          ]
                          spids: [46413 46414 46453 -1]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$compile_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [46479]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$compile_command') 
                                        ($ Id.VSub_DollarName '$compile_rpath')
                                      )
                                    }
                                  spids: [46505]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:exit_status)
                                  op: assign_op.Equal
                                  rhs: {<0>}
                                  spids: [46517]
                                )
                              ]
                            )
                            (C {<func_show_eval>} {(DQ ($ Id.VSub_DollarName '$link_command'))} 
                              {(SQ <'exit_status=$?'>)}
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [46537 46556]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Exit exit>
                              arg_word: {($ Id.VSub_DollarName '$exit_status')}
                            )
                          ]
                          spids: [46459 46472]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<-n>} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$compile_shlibpath') 
                                      ($ Id.VSub_DollarName '$finalize_shlibpath')
                                    )
                                  }
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:compile_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$compile_shlibpath') ($ Id.VSub_DollarName '$finalize_shlibpath') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <' '> ($ Id.VSub_DollarName '$compile_command')
                                      )
                                    }
                                  spids: [46594]
                                )
                              ]
                            )
                          ]
                          spids: [46579 46591]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$finalize_shlibpath'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:finalize_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$shlibpath_var') <'='> 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\"'>
                                        ) ($ Id.VSub_DollarName '$finalize_shlibpath') 
                                        (word_part.EscapedLiteral
                                          token: <Id.Lit_EscapedChar '\\$'>
                                        ) ($ Id.VSub_DollarName '$shlibpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                                        <' '> ($ Id.VSub_DollarName '$finalize_command')
                                      )
                                    }
                                  spids: [46626]
                                )
                              ]
                            )
                          ]
                          spids: [46612 46623]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:compile_var)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [46644]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:finalize_var)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [46647]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$runpath_var'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$perm_rpath'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [46682]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$perm_rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rpath') 
                                                        ($ Id.VSub_DollarName '$dir') <':'>
                                                      )
                                                    }
                                                  spids: [46697]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:compile_var)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$runpath_var') <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                                ($ Id.VSub_DollarName '$runpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '>
                                              )
                                            }
                                          spids: [46708]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46664 46675]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-n>} 
                                          {(DQ ($ Id.VSub_DollarName '$finalize_perm_rpath'))}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rpath)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [46742]
                                        )
                                      ]
                                    )
                                    (command.ForEach
                                      iter_name: dir
                                      iter_words: [{($ Id.VSub_DollarName '$finalize_perm_rpath')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rpath)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rpath') 
                                                        ($ Id.VSub_DollarName '$dir') <':'>
                                                      )
                                                    }
                                                  spids: [46757]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:finalize_var)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$runpath_var') <'='> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) ($ Id.VSub_DollarName '$rpath') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) 
                                                ($ Id.VSub_DollarName '$runpath_var') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' '>
                                              )
                                            }
                                          spids: [46768]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [46724 46735]
                                )
                              ]
                            )
                          ]
                          spids: [46650 46661]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 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: [46808]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:link_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$link_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(SQ <'s%@OUTPUT@%'>) 
                                                  (DQ ($ Id.VSub_DollarName '$output')) (SQ <'%g'>)
                                                }
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [46820]
                                )
                              ]
                            )
                            (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: [46788 46801]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 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: [46903]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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: [46911]
                                )
                              ]
                            )
                            (C {<func_warning>} 
                              {(DQ <'this platform does not like uninstalled shared libraries'>)}
                            )
                            (C {<func_warning>} 
                              {
                                (DQ (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
                                  ($ Id.VSub_DollarName '$output') <'\' will be relinked during installation'>
                                )
                              }
                            )
                          ]
                          spids: [46883 46896]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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 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: [46956]
                                    )
                                  ]
                                )
                                (command.If
                                  arms: [
                                    (if_arm
                                      cond: [
                                        (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 name:relink_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (command_sub
                                                    left_token: <Id.Left_Backtick '`'>
                                                    child: 
                                                      (command.Pipeline
                                                        children: [
                                                          (C {($ Id.VSub_DollarName '$ECHO')} 
                                                            {
                                                              (DQ 
                                                                ($ Id.VSub_DollarName '$compile_var') ($ Id.VSub_DollarName '$compile_command') ($ Id.VSub_DollarName '$compile_rpath')
                                                              )
                                                            }
                                                          )
                                                          (C {($ Id.VSub_DollarName '$SED')} 
                                                            {(SQ <'s%@OUTPUT@%$progdir/$file%g'>)}
                                                          )
                                                        ]
                                                        negated: F
                                                      )
                                                  )
                                                }
                                              spids: [46980]
                                            )
                                          ]
                                        )
                                      ]
                                      spids: [46964 46977]
                                    )
                                  ]
                                  else_action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [47013]
                                        )
                                      ]
                                    )
                                  ]
                                )
                              ]
                              spids: [46939 46953]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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: [47022]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name 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: [47030]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:link_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$link_command'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(SQ <'s%@OUTPUT@%'>) 
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            ($ Id.VSub_DollarName '$outputname')
                                          ) (SQ <'%g'>)
                                        }
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [47049]
                        )
                      ]
                    )
                    (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: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$relink_command'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ForEach
                              iter_name: var
                              iter_words: [{($ Id.VSub_DollarName '$variables_saved_for_relink')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<eval>} {<test>} {<-z>} 
                                                  {
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                    ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_LBrace '{'> 
                                                    ($ Id.VSub_DollarName '$var') <Id.Lit_Other '+'> <Id.KW_Set set> <Id.Lit_RBrace '}'> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\"'>
                                                    )
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ <'{ test -z '> 
                                                        (word_part.EscapedLiteral
                                                          token: <Id.Lit_EscapedChar '\\"'>
                                                        ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$var') 
                                                        <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' || '> ($ Id.VSub_DollarName '$lt_unset') 
                                                        <' '> ($ Id.VSub_DollarName '$var') <' || { '> ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                        ($ Id.VSub_DollarName '$var') <'; }; }; '> ($ Id.VSub_DollarName '$relink_command')
                                                      )
                                                    }
                                                  spids: [47180]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [47159 47177]
                                        )
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<eval>} 
                                                  {<Id.Lit_VarLike 'var_value='> 
                                                    (word_part.EscapedLiteral
                                                      token: <Id.Lit_EscapedChar '\\$'>
                                                    ) ($ Id.VSub_DollarName '$var')
                                                  }
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                            (command.Sentence
                                              child: 
                                                (C {<test>} {<-z>} 
                                                  {(DQ ($ Id.VSub_DollarName '$var_value'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                        ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                                      )
                                                    }
                                                  spids: [47223]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [47202 47220]
                                        )
                                      ]
                                      else_action: [
                                        (C {<func_quote_for_eval>} 
                                          {(DQ ($ Id.VSub_DollarName '$var_value'))}
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:relink_command)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$var') <'='> 
                                                    ($ Id.VSub_DollarName 
'$func_quote_for_eval_result'
                                                    ) <'; export '> ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                                  )
                                                }
                                              spids: [47243]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ <'(cd '> 
                                        (command_sub
                                          left_token: <Id.Left_Backtick '`'>
                                          child: (C {<pwd>})
                                        ) <'; '> ($ Id.VSub_DollarName '$relink_command') <')'>
                                      )
                                    }
                                  spids: [47261]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:relink_command)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (command_sub
                                        left_token: <Id.Left_Backtick '`'>
                                        child: 
                                          (command.Pipeline
                                            children: [
                                              (C {($ Id.VSub_DollarName '$ECHO')} 
                                                {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                              )
                                              (C {($ Id.VSub_DollarName '$SED')} 
                                                {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                              )
                                            ]
                                            negated: F
                                          )
                                      )
                                    }
                                  spids: [47275]
                                )
                              ]
                            )
                          ]
                          spids: [47129 47140]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (BraceGroup
                          children: [
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$output')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                  action: [
                                    (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                      {(DQ ($ Id.VSub_DollarName '$output'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [47343]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47325 47327 47346 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:exeext)
                                          op: assign_op.Equal
                                          rhs: {<.exe>}
                                          spids: [47369]
                                        )
                                      ]
                                    )
                                    (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                      {(DQ ($ Id.VSub_DollarName '$outputname'))}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:outputname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_stripname_result')}
                                          spids: [47387]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47363 47366 47390 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:exeext)
                                          op: assign_op.Equal
                                          rhs: (word.Empty)
                                          spids: [47396]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47393 47394 47398 -1]
                                )
                              ]
                            )
                            (command.Case
                              to_match: {($ Id.VSub_DollarName '$host')}
                              arms: [
                                (case_arm
                                  pat_list: [
                                    {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'>}
                                    {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'>}
                                  ]
                                  action: [
                                    (C {<func_dirname_and_basename>} 
                                      {(DQ ($ Id.VSub_DollarName '$output'))} {(DQ )} {(DQ <.>)}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output_name)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_basename_result')}
                                          spids: [47438]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:output_path)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_dirname_result')}
                                          spids: [47442]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name 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: [47446]
                                        )
                                      ]
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:cwrapper)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$output_path') <'/'> 
                                                ($ Id.VSub_DollarName '$output_name') <.exe>
                                              )
                                            }
                                          spids: [47457]
                                        )
                                      ]
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$cwrappersource')} {($ Id.VSub_DollarName '$cwrapper')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$cwrappersource') <' '> ($ Id.VSub_DollarName '$cwrapper') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.Simple
                                      words: [{<func_emit_cwrapperexe_src>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName '$cwrappersource')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (BraceGroup
                                          children: [
                                            (C {($ Id.VSub_DollarName '$LTCC')} 
                                              {($ Id.VSub_DollarName '$LTCFLAGS')} {<-o>} {($ Id.VSub_DollarName '$cwrapper')} {($ Id.VSub_DollarName '$cwrappersource')}
                                            )
                                            (C {($ Id.VSub_DollarName '$STRIP')} 
                                              {($ Id.VSub_DollarName '$cwrapper')}
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {<func_ltwrapper_scriptname>} 
                                      {($ Id.VSub_DollarName '$cwrapper')}
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                                        (BraceGroup
                                          children: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {(DQ <x> ($ Id.VSub_DollarName '$build'))} {<Id.Lit_Equals '='>} {(DQ <x> ($ Id.VSub_DollarName '$host'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (command.Simple
                                                      words: [
                                                        {($ Id.VSub_DollarName '$cwrapper')}
                                                        {<--lt-dump-script>}
                                                      ]
                                                      redirects: [
                                                        (redir
                                                          op: <Id.Redir_Great '>'>
                                                          loc: (redir_loc.Fd fd:1)
                                                          arg: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                              )
                                                            }
                                                        )
                                                      ]
                                                      do_fork: T
                                                    )
                                                  ]
                                                  spids: [47586 47604]
                                                )
                                              ]
                                              else_action: [
                                                (command.Simple
                                                  words: [{<func_emit_wrapper>} {<no>}]
                                                  redirects: [
                                                    (redir
                                                      op: <Id.Redir_Great '>'>
                                                      loc: (redir_loc.Fd fd:1)
                                                      arg: 
                                                        {
                                                          ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                          )
                                                        }
                                                    )
                                                  ]
                                                  do_fork: T
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47411 47421 47634 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                    (C {<trap>} 
                                      {
                                        (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                          ($ Id.VSub_DollarName '$output') <'; exit '> ($ Id.VSub_DollarName '$EXIT_FAILURE')
                                        )
                                      } {<1>} {<2>} {<15>}
                                    )
                                    (command.Simple
                                      words: [{<func_emit_wrapper>} {<no>}]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {($ Id.VSub_DollarName '$output')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (C {<chmod>} {<Id.Lit_Other '+'> <x>} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                  ]
                                  spids: [47637 47639 47682 -1]
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (command.ControlFlow
                      token: <Id.ControlFlow_Exit exit>
                      arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
                    )
                  ]
                  spids: [44849 44850 47696 -1]
                )
              ]
            )
            (command.ForEach
              iter_name: oldlib
              iter_words: [{($ Id.VSub_DollarName '$oldlibs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$libobjs_save') <' '> 
                                        ($ Id.VSub_DollarName '$symfileobj')
                                      )
                                    }
                                  spids: [47736]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:addlibs)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$convenience'))}
                                  spids: [47744]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                  op: assign_op.Equal
                                  rhs: {<no>}
                                  spids: [47750]
                                )
                              ]
                            )
                          ]
                          spids: [47720 47733]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (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 name:oldobjs)
                                      op: assign_op.Equal
                                      rhs: {(DQ ($ Id.VSub_DollarName '$libobjs_save'))}
                                      spids: [47773]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:build_libtool_libs)
                                      op: assign_op.Equal
                                      rhs: {<no>}
                                      spids: [47779]
                                    )
                                  ]
                                )
                              ]
                              spids: [47757 47770]
                            )
                          ]
                          else_action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$old_deplibs') <' '> 
                                        ($ Id.VSub_DollarName '$non_pic_objects')
                                      )
                                    }
                                  spids: [47786]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:oldobjs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$oldobjs') <' '> 
                                                ($ Id.VSub_DollarName '$symfileobj')
                                              )
                                            }
                                          spids: [47820]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [47794 47817]
                                )
                              ]
                            )
                          ]
                        )
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:addlibs)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$old_convenience'))}
                              spids: [47834]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$addlibs'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                        (${ Id.VSub_Name outputname) <x>
                                      )
                                    }
                                  spids: [47858]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:generated)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                        ($ Id.VSub_DollarName '$gentop')
                                      )
                                    }
                                  spids: [47869]
                                )
                              ]
                            )
                            (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                              {($ Id.VSub_DollarName '$addlibs')}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$oldobjs') <' '> 
                                        ($ Id.VSub_DollarName '$func_extract_archives_result')
                                      )
                                    }
                                  spids: [47885]
                                )
                              ]
                            )
                          ]
                          spids: [47844 47855]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:cmds)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$old_archive_from_new_cmds')}
                                  spids: [47927]
                                )
                              ]
                            )
                          ]
                          spids: [47901 47924]
                        )
                      ]
                      else_action: [
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dlprefiles'))})
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:gentop)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                            (${ Id.VSub_Name outputname) <x>
                                          )
                                        }
                                      spids: [47953]
                                    )
                                  ]
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:generated)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                            ($ Id.VSub_DollarName '$gentop')
                                          )
                                        }
                                      spids: [47964]
                                    )
                                  ]
                                )
                                (C {<func_extract_archives>} {($ Id.VSub_DollarName '$gentop')} 
                                  {($ Id.VSub_DollarName '$dlprefiles')}
                                )
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:oldobjs)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$oldobjs') <' '> 
                                            ($ Id.VSub_DollarName '$func_extract_archives_result')
                                          )
                                        }
                                      spids: [47980]
                                    )
                                  ]
                                )
                              ]
                              spids: [47939 47950]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.Subshell
                                      child: 
                                        (command.Pipeline
                                          children: [
                                            (command.ForEach
                                              iter_name: obj
                                              iter_words: [{($ Id.VSub_DollarName '$oldobjs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (C {<func_basename>} 
                                                      {(DQ ($ Id.VSub_DollarName '$obj'))}
                                                    )
                                                    (C {($ Id.VSub_DollarName '$ECHO')} 
                                                      {
                                                        (DQ 
                                                          ($ Id.VSub_DollarName 
'$func_basename_result'
                                                          )
                                                        )
                                                      }
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {<sort>})
                                            (command.Simple
                                              words: [{<sort>} {<-uc>}]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_Great '>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {<'/dev/null'>}
                                                )
                                                (redir
                                                  op: <Id.Redir_GreatAnd '2>&'>
                                                  loc: (redir_loc.Fd fd:2)
                                                  arg: {<1>}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          negated: F
                                        )
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [(C {<Id.Lit_Colon ':'>})]
                              spids: [48016 48065]
                            )
                          ]
                          else_action: [
                            (C {<echo>} 
                              {(DQ <'copying selected object files to avoid basename conflicts...'>)}
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:gentop)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$output_objdir') <'/'> 
                                        (${ Id.VSub_Name outputname) <x>
                                      )
                                    }
                                  spids: [48081]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:generated)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$generated') <' '> 
                                        ($ Id.VSub_DollarName '$gentop')
                                      )
                                    }
                                  spids: [48092]
                                )
                              ]
                            )
                            (C {<func_mkdir_p>} {(DQ ($ Id.VSub_DollarName '$gentop'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$oldobjs')}
                                  spids: [48107]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [48111]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:counter)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [48114]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$obj'))})
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:objbase)
                                          op: assign_op.Equal
                                          rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                                          spids: [48137]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {(DQ <' '> ($ Id.VSub_DollarName '$oldobjs') <' '>)}
                                      arms: [
                                        (case_arm
                                          pat_list: [{(DQ <' '>)}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                                  op: assign_op.Equal
                                                  rhs: {($ Id.VSub_DollarName '$obj')}
                                                  spids: [48159]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [48154 48157 48162 -1]
                                        )
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\ '>
                                              ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName '$objbase') <' '>) <Id.Lit_Star '*'>
                                            }
                                          ]
                                          action: [
                                            (command.WhileUntil
                                              keyword: <Id.KW_While while>
                                              cond: [
                                                (command.Sentence
                                                  child: (C {<Id.Lit_Colon ':'>})
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:newobj)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {<lt> ($ Id.VSub_DollarName '$counter') 
                                                              <-> ($ Id.VSub_DollarName '$objbase')
                                                            }
                                                          spids: [48194]
                                                        )
                                                      ]
                                                    )
                                                    (C {<func_arith>} 
                                                      {($ Id.VSub_DollarName '$counter')} {<Id.Lit_Other '+'>} {<1>}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:counter)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_arith_result'
                                                              )
                                                            }
                                                          spids: [48210]
                                                        )
                                                      ]
                                                    )
                                                    (command.Case
                                                      to_match: 
                                                        {
                                                          (DQ <' '> ($ Id.VSub_DollarName '$oldobjs') 
                                                            <' '>
                                                          )
                                                        }
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [
                                                            {<Id.Lit_Star '*'> <Id.Lit_LBracket '['> 
                                                              (word_part.EscapedLiteral
                                                                token: <Id.Lit_EscapedChar '\\ '>
                                                              ) <'/'> <Id.Lit_RBracket ']'> (DQ ($ Id.VSub_DollarName '$newobj') <' '>) <Id.Lit_Star '*'>
                                                            }
                                                          ]
                                                          spids: [48225 48235 48237 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.If
                                                              arms: [
                                                                (if_arm
                                                                  cond: [
                                                                    (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: [48243 48258]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [48240 48241 48265 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (C {<func_show_eval>} 
                                              {
                                                (DQ <'ln '> ($ Id.VSub_DollarName '$obj') <' '> 
                                                  ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj') <' || cp '> ($ Id.VSub_DollarName '$obj') <' '> 
                                                  ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj')
                                                )
                                              }
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$oldobjs') <' '> 
                                                        ($ Id.VSub_DollarName '$gentop') <'/'> ($ Id.VSub_DollarName '$newobj')
                                                      )
                                                    }
                                                  spids: [48292]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [48165 48175 48302 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'>}]
                                          action: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$oldobjs') <' '> 
                                                        ($ Id.VSub_DollarName '$obj')
                                                      )
                                                    }
                                                  spids: [48308]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [48305 48306 48315 -1]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                        (C {<eval>} 
                          {
                            (DQ <'cmds='> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) 
                              ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                            )
                          }
                        )
                        (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$cmds'))})
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:len)
                              op: assign_op.Equal
                              rhs: {($ Id.VSub_DollarName '$func_len_result')}
                              spids: [48346]
                            )
                          ]
                        )
                        (command.If
                          arms: [
                            (if_arm
                              cond: [
                                (command.Sentence
                                  child: 
                                    (command.AndOr
                                      ops: [Id.Op_DPipe]
                                      children: [
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$len'))} {<-lt>} 
                                          {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))}
                                        )
                                        (C {<test>} {(DQ ($ Id.VSub_DollarName '$max_cmd_len'))} {<-le>} 
                                          {<-1>}
                                        )
                                      ]
                                    )
                                  terminator: <Id.Op_Semi _>
                                )
                              ]
                              action: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:cmds)
                                      op: assign_op.Equal
                                      rhs: {($ Id.VSub_DollarName '$old_archive_cmds')}
                                      spids: [48380]
                                    )
                                  ]
                                )
                              ]
                              spids: [48350 48377]
                            )
                          ]
                          else_action: [
                            (C {<func_verbose>} {(DQ <'using piecewise archive linking...'>)})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$RANLIB')}
                                  spids: [48398]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {<Id.Lit_Colon ':'>}
                                  spids: [48402]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:objlist)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [48406]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:concat_cmds)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [48409]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:save_oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$oldobjs')}
                                  spids: [48412]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [48416]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:last_oldobj)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$obj')}
                                          spids: [48435]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (C {<eval>} 
                              {
                                (DQ <'test_cmds='> 
                                  (word_part.EscapedLiteral
                                    token: <Id.Lit_EscapedChar '\\"'>
                                  ) ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                )
                              }
                            )
                            (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$test_cmds'))})
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:len0)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$func_len_result')}
                                  spids: [48460]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:len)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$len0')}
                                  spids: [48464]
                                )
                              ]
                            )
                            (command.ForEach
                              iter_name: obj
                              iter_words: [{($ Id.VSub_DollarName '$save_oldobjs')}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (C {<func_len>} {(DQ <' '> ($ Id.VSub_DollarName '$obj'))})
                                    (C {<func_arith>} {($ Id.VSub_DollarName '$len')} 
                                      {<Id.Lit_Other '+'>} {($ Id.VSub_DollarName '$func_len_result')}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:len)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$func_arith_result')}
                                          spids: [48497]
                                        )
                                      ]
                                    )
                                    (C {<func_append>} {<objlist>} 
                                      {(DQ <' '> ($ Id.VSub_DollarName '$obj'))}
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [48511 48526]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:oldobjs)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$objlist')}
                                              spids: [48539]
                                            )
                                          ]
                                        )
                                        (command.If
                                          arms: [
                                            (if_arm
                                              cond: [
                                                (command.Sentence
                                                  child: 
                                                    (C {<test>} {(DQ ($ Id.VSub_DollarName '$obj'))} 
                                                      {<Id.Lit_Equals '='>} {(DQ ($ Id.VSub_DollarName '$last_oldobj'))}
                                                    )
                                                  terminator: <Id.Op_Semi _>
                                                )
                                              ]
                                              action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:RANLIB)
                                                      op: assign_op.Equal
                                                      rhs: {($ Id.VSub_DollarName '$save_RANLIB')}
                                                      spids: [48562]
                                                    )
                                                  ]
                                                )
                                              ]
                                              spids: [48543 48559]
                                            )
                                          ]
                                        )
                                        (command.AndOr
                                          ops: [Id.Op_DPipe]
                                          children: [
                                            (C {<test>} {<-z>} 
                                              {(DQ ($ Id.VSub_DollarName '$concat_cmds'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:concat_cmds)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$concat_cmds') 
                                                      <Id.Lit_TildeLike '~'>
                                                    }
                                                  spids: [48579]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                        (C {<eval>} 
                                          {
                                            (DQ <'concat_cmds='> 
                                              (word_part.EscapedLiteral
                                                token: <Id.Lit_EscapedChar '\\"'>
                                              ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{concat_cmds}'> 
                                              ($ Id.VSub_DollarName '$old_archive_cmds') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                            )
                                          }
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:objlist)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [48596]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:len)
                                              op: assign_op.Equal
                                              rhs: {($ Id.VSub_DollarName '$len0')}
                                              spids: [48599]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RANLIB)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$save_RANLIB')}
                                  spids: [48609]
                                )
                              ]
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:oldobjs)
                                  op: assign_op.Equal
                                  rhs: {($ Id.VSub_DollarName '$objlist')}
                                  spids: [48613]
                                )
                              ]
                            )
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {(DQ <X> ($ Id.VSub_DollarName '$oldobjs'))} 
                                          {<Id.Lit_Equals '='>} {(DQ <X>)}
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<eval>} 
                                      {
                                        (DQ <'cmds='> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <concat_cmds> 
                                          (word_part.EscapedLiteral
                                            token: <Id.Lit_EscapedChar '\\"'>
                                          )
                                        )
                                      }
                                    )
                                  ]
                                  spids: [48617 48634]
                                )
                              ]
                              else_action: [
                                (C {<eval>} 
                                  {
                                    (DQ <'cmds='> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\"'>
                                      ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'concat_cmds~'> 
                                      (word_part.EscapedLiteral
                                        token: <Id.Lit_EscapedChar '\\$'>
                                      ) <old_archive_cmds> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                    )
                                  }
                                )
                              ]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_execute_cmds>} {(DQ ($ Id.VSub_DollarName '$cmds'))} {(SQ <'exit $?'>)})
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$generated'))})
                (C {<func_show_eval>} 
                  {(DQ (${ Id.VSub_Name RM) <r> ($ Id.VSub_DollarName '$generated'))}
                )
              ]
            )
            (command.Case
              to_match: {($ Id.VSub_DollarName '$output')}
              arms: [
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'> <.la>}]
                  action: [
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:old_library)
                          op: assign_op.Equal
                          rhs: (word.Empty)
                          spids: [48728]
                        )
                      ]
                    )
                    (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 name:old_library)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$libname') <.> 
                                    ($ Id.VSub_DollarName '$libext')
                                  )
                                }
                              spids: [48743]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_verbose>} {(DQ <'creating '> ($ Id.VSub_DollarName '$output'))})
                    (command.ForEach
                      iter_name: var
                      iter_words: [{($ Id.VSub_DollarName '$variables_saved_for_relink')}]
                      do_arg_iter: F
                      body: 
                        (command.DoGroup
                          children: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<eval>} {<test>} {<-z>} 
                                          {
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <Id.Lit_LBrace '{'> 
                                            ($ Id.VSub_DollarName '$var') <Id.Lit_Other '+'> <Id.KW_Set set> <Id.Lit_RBrace '}'> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\"'>
                                            )
                                          }
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ <'{ test -z '> 
                                                (word_part.EscapedLiteral
                                                  token: <Id.Lit_EscapedChar '\\"'>
                                                ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'{'> ($ Id.VSub_DollarName '$var') 
                                                <'+set}'> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) <' || '> ($ Id.VSub_DollarName '$lt_unset') 
                                                <' '> ($ Id.VSub_DollarName '$var') <' || { '> ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                ($ Id.VSub_DollarName '$var') <'; }; }; '> ($ Id.VSub_DollarName '$relink_command')
                                              )
                                            }
                                          spids: [48797]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [48776 48794]
                                )
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: 
                                        (C {<eval>} 
                                          {<Id.Lit_VarLike 'var_value='> 
                                            (word_part.EscapedLiteral
                                              token: <Id.Lit_EscapedChar '\\$'>
                                            ) ($ Id.VSub_DollarName '$var')
                                          }
                                        )
                                      terminator: <Id.Op_Semi _>
                                    )
                                    (command.Sentence
                                      child: 
                                        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$var_value'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$var') <'=; export '> 
                                                ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                              )
                                            }
                                          spids: [48840]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [48819 48837]
                                )
                              ]
                              else_action: [
                                (C {<func_quote_for_eval>} {(DQ ($ Id.VSub_DollarName '$var_value'))})
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:relink_command)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$var') <'='> 
                                            ($ Id.VSub_DollarName '$func_quote_for_eval_result') <'; export '> ($ Id.VSub_DollarName '$var') <'; '> ($ Id.VSub_DollarName '$relink_command')
                                          )
                                        }
                                      spids: [48860]
                                    )
                                  ]
                                )
                              ]
                            )
                          ]
                        )
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:relink_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (DQ <'(cd '> 
                                (command_sub
                                  left_token: <Id.Left_Backtick '`'>
                                  child: (C {<pwd>})
                                ) <'; '> ($ Id.VSub_DollarName '$SHELL') <' '> ($ Id.VSub_DollarName '$progpath') <' '> 
                                ($ Id.VSub_DollarName '$preserve_args') <' --mode=relink '> ($ Id.VSub_DollarName '$libtool_args') <' @inst_prefix_dir@)'>
                              )
                            }
                          spids: [48882]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:relink_command)
                          op: assign_op.Equal
                          rhs: 
                            {
                              (command_sub
                                left_token: <Id.Left_Backtick '`'>
                                child: 
                                  (command.Pipeline
                                    children: [
                                      (C {($ Id.VSub_DollarName '$ECHO')} 
                                        {(DQ ($ Id.VSub_DollarName '$relink_command'))}
                                      )
                                      (C {($ Id.VSub_DollarName '$SED')} 
                                        {(DQ ($ Id.VSub_DollarName '$sed_quote_subst'))}
                                      )
                                    ]
                                    negated: F
                                  )
                              )
                            }
                          spids: [48902]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:relink_command)
                                  op: assign_op.Equal
                                  rhs: (word.Empty)
                                  spids: [48939]
                                )
                              ]
                            )
                          ]
                          spids: [48922 48936]
                        )
                      ]
                    )
                    (command.AndOr
                      ops: [Id.Op_DPipe]
                      children: [
                        (C {($ Id.VSub_DollarName '$opt_dry_run')})
                        (BraceGroup
                          children: [
                            (command.ForEach
                              iter_name: installed
                              iter_words: [{<no>} {<yes>}]
                              do_arg_iter: F
                              body: 
                                (command.DoGroup
                                  children: [
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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: [
                                                    (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: [48987 48998]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:output)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$output_objdir') 
                                                        <'/'> ($ Id.VSub_DollarName '$outputname')
                                                      ) <i>
                                                    }
                                                  spids: [49007]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [49020]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: deplib
                                              iter_words: [{($ Id.VSub_DollarName '$dependency_libs')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$deplib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$deplib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [49054]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {(${ Id.VSub_Name SED)} 
                                                                            {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$deplib')}
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [49060]
                                                                )
                                                              ]
                                                            )
                                                            (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 '\\`'>
                                                                      ) ($ Id.VSub_DollarName '$deplib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdependency_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdependency_libs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [49107]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [49042 49044 49117 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdependency_libs
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdependency_libs'
                                                                        ) <' '> ($ Id.VSub_DollarName '$deplib')
                                                                      )
                                                                    }
                                                                  spids: [49123]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [49120 49121 49130 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dependency_libs)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ 
                                                        ($ Id.VSub_DollarName '$newdependency_libs')
                                                      )
                                                    }
                                                  spids: [49139]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlfiles)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [49145]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: lib
                                              iter_words: [{($ Id.VSub_DollarName '$dlfiles')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$lib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [49180]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {(${ Id.VSub_Name SED)} 
                                                                            {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$lib')}
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [49186]
                                                                )
                                                              ]
                                                            )
                                                            (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 '\\`'>
                                                                      ) ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdlfiles'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [49233]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [49168 49170 49243 -1]
                                                        )
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'>}]
                                                          action: [
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdlfiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdlfiles'
                                                                        ) <' '> ($ Id.VSub_DollarName '$lib')
                                                                      )
                                                                    }
                                                                  spids: [49249]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [49246 49247 49256 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlfiles)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$newdlfiles'))}
                                                  spids: [49265]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: (word.Empty)
                                                  spids: [49271]
                                                )
                                              ]
                                            )
                                            (command.ForEach
                                              iter_name: lib
                                              iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                              do_arg_iter: F
                                              body: 
                                                (command.DoGroup
                                                  children: [
                                                    (command.Case
                                                      to_match: {($ Id.VSub_DollarName '$lib')}
                                                      arms: [
                                                        (case_arm
                                                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                                                          action: [
                                                            (C {<func_basename>} 
                                                              {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:name)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$func_basename_result'
                                                                        )
                                                                      )
                                                                    }
                                                                  spids: [49321]
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: (sh_lhs_expr.Name name:libdir)
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (command_sub
                                                                        left_token: 
                                                                          <Id.Left_Backtick '`'>
                                                                        child: 
                                                                          (C {(${ Id.VSub_Name SED)} 
                                                                            {<-n>} {<-e>} {(SQ <'s/^libdir=\\(.*\\)$/\\1/p'>)} {($ Id.VSub_DollarName '$lib')}
                                                                          )
                                                                      )
                                                                    }
                                                                  spids: [49327]
                                                                )
                                                              ]
                                                            )
                                                            (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 '\\`'>
                                                                      ) ($ Id.VSub_DollarName '$lib') <'\' is not a valid libtool archive'>
                                                                    )
                                                                  }
                                                                )
                                                              ]
                                                            )
                                                            (command.ShAssignment
                                                              pairs: [
                                                                (assign_pair
                                                                  lhs: 
                                                                    (sh_lhs_expr.Name
                                                                      name: newdlprefiles
                                                                    )
                                                                  op: assign_op.Equal
                                                                  rhs: 
                                                                    {
                                                                      (DQ 
                                                                        ($ Id.VSub_DollarName 
'$newdlprefiles'
                                                                        ) <' '> ($ Id.VSub_DollarName '$libdir') <'/'> ($ Id.VSub_DollarName '$name')
                                                                      )
                                                                    }
                                                                  spids: [49374]
                                                                )
                                                              ]
                                                            )
                                                          ]
                                                          spids: [49293 49295 49384 -1]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                )
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:dlprefiles)
                                                  op: assign_op.Equal
                                                  rhs: {(DQ ($ Id.VSub_DollarName '$newdlprefiles'))}
                                                  spids: [49393]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [48971 48984]
                                        )
                                      ]
                                      else_action: [
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlfiles)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [49402]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: lib
                                          iter_words: [{($ Id.VSub_DollarName '$dlfiles')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$lib')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_LBracket '['> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\\'>
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <A-Za-z> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                          <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                              spids: [49443]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [49424 49441 49448 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName '$lib'))
                                                                }
                                                              spids: [49454]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [49451 49452 49465 -1]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdlfiles)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$newdlfiles') 
                                                            <' '> ($ Id.VSub_DollarName '$abs')
                                                          )
                                                        }
                                                      spids: [49471]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dlfiles)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$newdlfiles'))}
                                              spids: [49482]
                                            )
                                          ]
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                              op: assign_op.Equal
                                              rhs: (word.Empty)
                                              spids: [49488]
                                            )
                                          ]
                                        )
                                        (command.ForEach
                                          iter_name: lib
                                          iter_words: [{($ Id.VSub_DollarName '$dlprefiles')}]
                                          do_arg_iter: F
                                          body: 
                                            (command.DoGroup
                                              children: [
                                                (command.Case
                                                  to_match: {($ Id.VSub_DollarName '$lib')}
                                                  arms: [
                                                    (case_arm
                                                      pat_list: [
                                                        {<Id.Lit_LBracket '['> 
                                                          (word_part.EscapedLiteral
                                                            token: <Id.Lit_EscapedChar '\\\\'>
                                                          ) <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                        {<Id.Lit_LBracket '['> <A-Za-z> 
                                                          <Id.Lit_RBracket ']'> <Id.Lit_Colon ':'> <Id.Lit_LBracket '['> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\\'>) 
                                                          <'/'> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>
                                                        }
                                                      ]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: {(DQ ($ Id.VSub_DollarName '$lib'))}
                                                              spids: [49529]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [49510 49527 49534 -1]
                                                    )
                                                    (case_arm
                                                      pat_list: [{<Id.Lit_Star '*'>}]
                                                      action: [
                                                        (command.ShAssignment
                                                          pairs: [
                                                            (assign_pair
                                                              lhs: (sh_lhs_expr.Name name:abs)
                                                              op: assign_op.Equal
                                                              rhs: 
                                                                {
                                                                  (command_sub
                                                                    left_token: 
                                                                      <Id.Left_Backtick '`'>
                                                                    child: (C {<pwd>})
                                                                  ) (DQ <'/'> ($ Id.VSub_DollarName '$lib'))
                                                                }
                                                              spids: [49540]
                                                            )
                                                          ]
                                                        )
                                                      ]
                                                      spids: [49537 49538 49551 -1]
                                                    )
                                                  ]
                                                )
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:newdlprefiles)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {
                                                          (DQ ($ Id.VSub_DollarName '$newdlprefiles') 
                                                            <' '> ($ Id.VSub_DollarName '$abs')
                                                          )
                                                        }
                                                      spids: [49557]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                        )
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:dlprefiles)
                                              op: assign_op.Equal
                                              rhs: {(DQ ($ Id.VSub_DollarName '$newdlprefiles'))}
                                              spids: [49568]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (C {($ Id.VSub_DollarName '$RM')} 
                                      {($ Id.VSub_DollarName '$output')}
                                    )
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:tdlname)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$dlname')}
                                          spids: [49618]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: 
                                        {($ Id.VSub_DollarName '$host') <Id.Lit_Comma ','> 
                                          ($ Id.VSub_DollarName '$output') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$installed') <Id.Lit_Comma ','> 
                                          ($ Id.VSub_DollarName '$module') <Id.Lit_Comma ','> ($ Id.VSub_DollarName '$dlname')
                                        }
                                      arms: [
                                        (case_arm
                                          pat_list: [
                                            {<Id.Lit_Star '*'> <cygwin> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                            {<Id.Lit_Star '*'> <mingw> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                            {<Id.Lit_Star '*'> <cegcc> <Id.Lit_Star '*'> 
                                              <Id.Lit_Comma ','> <Id.Lit_Star '*'> <lai> <Id.Lit_Comma ','> <yes> <Id.Lit_Comma ','> <no> <Id.Lit_Comma ','> 
                                              <Id.Lit_Star '*'> <.dll>
                                            }
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<test>} 
                                                          {(DQ <x> ($ Id.VSub_DollarName '$bindir'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<x>}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<func_relative_path>} 
                                                      {(DQ ($ Id.VSub_DollarName '$install_libdir'))} {(DQ ($ Id.VSub_DollarName '$bindir'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:tdlname)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              ($ Id.VSub_DollarName 
'$func_relative_path_result'
                                                              ) ($ Id.VSub_DollarName '$dlname')
                                                            }
                                                          spids: [49720]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [49689 49706]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:tdlname)
                                                      op: assign_op.Equal
                                                      rhs: 
                                                        {<'../bin/'> ($ Id.VSub_DollarName '$dlname')}
                                                      spids: [49732]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [49637 49682 49740 -1]
                                        )
                                      ]
                                    )
                                    (command.Simple
                                      words: [
                                        {($ Id.VSub_DollarName '$ECHO')}
                                        {
                                          (DQ <'# '> ($ Id.VSub_DollarName '$outputname') 
                                            <' - a libtool library file\n'> <'# Generated by '> ($ Id.VSub_DollarName '$PROGRAM') <' (GNU '> ($ Id.VSub_DollarName '$PACKAGE') 
                                            ($ Id.VSub_DollarName '$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')}
                                        )
                                      ]
                                      do_fork: T
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 '\\"'>
                                                    ) ($ Id.VSub_DollarName '$relink_command') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>)
                                                  )
                                                }
                                              ]
                                              redirects: [
                                                (redir
                                                  op: <Id.Redir_DGreat '>>'>
                                                  loc: (redir_loc.Fd fd:1)
                                                  arg: {($ Id.VSub_DollarName '$output')}
                                                )
                                              ]
                                              do_fork: T
                                            )
                                          ]
                                          spids: [49837 49862]
                                        )
                                      ]
                                    )
                                  ]
                                )
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {
                        (SQ 
                          <
'( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )'
                          >
                        )
                      } {(SQ <'exit $?'>)}
                    )
                  ]
                  spids: [48723 48725 49909 -1]
                )
              ]
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$EXIT_SUCCESS')}
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (BraceGroup
          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 _>
            )
          ]
        )
        (C {<func_mode_link>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.ShFunction
      name: func_mode_uninstall
      body: 
        (BraceGroup
          children: [
            (C {($ Id.VSub_DollarName '$opt_debug')})
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:RM)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$nonopt'))}
                  spids: [49978]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:files)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [49984]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rmforce)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [49987]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:exit_status)
                  op: assign_op.Equal
                  rhs: {<0>}
                  spids: [49990]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:libtool_install_magic)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$magic'))}
                  spids: [50003]
                )
              ]
            )
            (command.ForEach
              iter_name: arg
              do_arg_iter: T
              body: 
                (command.DoGroup
                  children: [
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$arg')}
                      arms: [
                        (case_arm
                          pat_list: [{<-f>}]
                          action: [
                            (command.Sentence
                              child: 
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:RM)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                            ($ Id.VSub_DollarName '$arg')
                                          )
                                        }
                                      spids: [50028]
                                    )
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:rmforce)
                                  op: assign_op.Equal
                                  rhs: {<yes>}
                                  spids: [50036]
                                )
                              ]
                            )
                          ]
                          spids: [50025 50026 50039 -1]
                        )
                        (case_arm
                          pat_list: [{<-> <Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:RM)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$RM') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [50046]
                                )
                              ]
                            )
                          ]
                          spids: [50042 50044 50053 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:files)
                                  op: assign_op.Equal
                                  rhs: 
                                    {
                                      (DQ ($ Id.VSub_DollarName '$files') <' '> 
                                        ($ Id.VSub_DollarName '$arg')
                                      )
                                    }
                                  spids: [50059]
                                )
                              ]
                            )
                          ]
                          spids: [50056 50057 50066 -1]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.AndOr
              ops: [Id.Op_DAmp]
              children: [
                (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$RM'))})
                (C {<func_fatal_help>} {(DQ <'you must specify an RM program'>)})
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:rmdirs)
                  op: assign_op.Equal
                  rhs: (word.Empty)
                  spids: [50096]
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:origobjdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$objdir'))}
                  spids: [50100]
                )
              ]
            )
            (command.ForEach
              iter_name: file
              iter_words: [{($ Id.VSub_DollarName '$files')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<func_dirname>} {(DQ ($ Id.VSub_DollarName '$file'))} {(DQ )} {(DQ <.>)})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:dir)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_dirname_result'))}
                          spids: [50132]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 name:objdir)
                                  op: assign_op.Equal
                                  rhs: {(DQ ($ Id.VSub_DollarName '$origobjdir'))}
                                  spids: [50155]
                                )
                              ]
                            )
                          ]
                          spids: [50138 50152]
                        )
                      ]
                      else_action: [
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:objdir)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ ($ Id.VSub_DollarName '$dir') <'/'> 
                                    ($ Id.VSub_DollarName '$origobjdir')
                                  )
                                }
                              spids: [50164]
                            )
                          ]
                        )
                      ]
                    )
                    (C {<func_basename>} {(DQ ($ Id.VSub_DollarName '$file'))})
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:name)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$func_basename_result'))}
                          spids: [50182]
                        )
                      ]
                    )
                    (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 name:objdir)
                              op: assign_op.Equal
                              rhs: {(DQ ($ Id.VSub_DollarName '$dir'))}
                              spids: [50200]
                            )
                          ]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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 '*'>
                                    }
                                  ]
                                  spids: [50238 50245 50247 -1]
                                )
                                (case_arm
                                  pat_list: [{<Id.Lit_Star '*'>}]
                                  action: [
                                    (command.ShAssignment
                                      pairs: [
                                        (assign_pair
                                          lhs: (sh_lhs_expr.Name name:rmdirs)
                                          op: assign_op.Equal
                                          rhs: 
                                            {
                                              (DQ ($ Id.VSub_DollarName '$rmdirs') <' '> 
                                                ($ Id.VSub_DollarName '$objdir')
                                              )
                                            }
                                          spids: [50253]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50250 50251 50260 -1]
                                )
                              ]
                            )
                          ]
                          spids: [50211 50224]
                        )
                      ]
                    )
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (command.AndOr
                                  ops: [Id.Op_DPipe Id.Op_DPipe]
                                  children: [
                                    (BraceGroup
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-L>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                    )
                                    (BraceGroup
                                      children: [
                                        (command.Sentence
                                          child: 
                                            (C {<test>} {<-h>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                          terminator: <Id.Op_Semi _>
                                        )
                                      ]
                                      redirects: [
                                        (redir
                                          op: <Id.Redir_Great '>'>
                                          loc: (redir_loc.Fd fd:1)
                                          arg: {<'/dev/null'>}
                                        )
                                        (redir
                                          op: <Id.Redir_GreatAnd '2>&'>
                                          loc: (redir_loc.Fd fd:2)
                                          arg: {<1>}
                                        )
                                      ]
                                    )
                                    (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                  ]
                                )
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [(C {<Id.Lit_Colon ':'>})]
                          spids: [50274 50329]
                        )
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName '$file'))})
                              terminator: <Id.Op_Semi _>
                            )
                          ]
                          action: [
                            (command.ShAssignment
                              pairs: [
                                (assign_pair
                                  lhs: (sh_lhs_expr.Name name:exit_status)
                                  op: assign_op.Equal
                                  rhs: {<1>}
                                  spids: [50349]
                                )
                              ]
                            )
                            (command.ControlFlow
                              token: <Id.ControlFlow_Continue continue>
                            )
                          ]
                          spids: [50335 50346]
                        )
                        (if_arm
                          cond: [
                            (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: [50356 50369]
                        )
                      ]
                    )
                    (command.ShAssignment
                      pairs: [
                        (assign_pair
                          lhs: (sh_lhs_expr.Name name:rmfiles)
                          op: assign_op.Equal
                          rhs: {(DQ ($ Id.VSub_DollarName '$file'))}
                          spids: [50379]
                        )
                      ]
                    )
                    (command.Case
                      to_match: {($ Id.VSub_DollarName '$name')}
                      arms: [
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.la>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (command.Sentence
                                      child: (C {<func_lalib_p>} {(DQ ($ Id.VSub_DollarName '$file'))})
                                      terminator: <Id.Op_Semi _>
                                    )
                                  ]
                                  action: [
                                    (C {<func_source>} 
                                      {($ Id.VSub_DollarName '$dir') <'/'> 
                                        ($ Id.VSub_DollarName '$name')
                                      }
                                    )
                                    (command.ForEach
                                      iter_name: n
                                      iter_words: [{($ Id.VSub_DollarName '$library_names')}]
                                      do_arg_iter: F
                                      body: 
                                        (command.DoGroup
                                          children: [
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rmfiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rmfiles') <' '> 
                                                        ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$n')
                                                      )
                                                    }
                                                  spids: [50438]
                                                )
                                              ]
                                            )
                                          ]
                                        )
                                    )
                                    (command.AndOr
                                      ops: [Id.Op_DAmp]
                                      children: [
                                        (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$old_library'))})
                                        (command.ShAssignment
                                          pairs: [
                                            (assign_pair
                                              lhs: (sh_lhs_expr.Name name:rmfiles)
                                              op: assign_op.Equal
                                              rhs: 
                                                {
                                                  (DQ ($ Id.VSub_DollarName '$rmfiles') <' '> 
                                                    ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$old_library')
                                                  )
                                                }
                                              spids: [50461]
                                            )
                                          ]
                                        )
                                      ]
                                    )
                                    (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 '*'>
                                                    }
                                                  ]
                                                  spids: [50500 50507 50509 -1]
                                                )
                                                (case_arm
                                                  pat_list: [{<Id.Lit_Star '*'>}]
                                                  action: [
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:rmfiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rmfiles') 
                                                                <' '> ($ Id.VSub_DollarName '$objdir') <'/'> ($ Id.VSub_DollarName '$dlname')
                                                              )
                                                            }
                                                          spids: [50515]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [50512 50513 50524 -1]
                                                )
                                              ]
                                            )
                                            (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 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: [50540]
                                                    )
                                                  ]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50481 50482 50557 -1]
                                        )
                                        (case_arm
                                          pat_list: [{<uninstall>}]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [50564 50575]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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: [50597 50608]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50560 50561 50633 -1]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50402 50411]
                                )
                              ]
                            )
                          ]
                          spids: [50393 50395 50642 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'> <.lo>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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: [
                                            (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 name:rmfiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rmfiles') <' '> 
                                                        ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$pic_object')
                                                      )
                                                    }
                                                  spids: [50712]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50684 50709]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (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 name:rmfiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rmfiles') <' '> 
                                                        ($ Id.VSub_DollarName '$dir') <'/'> ($ Id.VSub_DollarName '$non_pic_object')
                                                      )
                                                    }
                                                  spids: [50758]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50730 50755]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50655 50664]
                                )
                              ]
                            )
                          ]
                          spids: [50646 50648 50774 -1]
                        )
                        (case_arm
                          pat_list: [{<Id.Lit_Star '*'>}]
                          action: [
                            (command.If
                              arms: [
                                (if_arm
                                  cond: [
                                    (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 name:noexename)
                                          op: assign_op.Equal
                                          rhs: {($ Id.VSub_DollarName '$name')}
                                          spids: [50799]
                                        )
                                      ]
                                    )
                                    (command.Case
                                      to_match: {($ Id.VSub_DollarName '$file')}
                                      arms: [
                                        (case_arm
                                          pat_list: [{<Id.Lit_Star '*'> <.exe>}]
                                          action: [
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$file'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:file)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [50829]
                                                )
                                              ]
                                            )
                                            (C {<func_stripname>} {(SQ )} {(SQ <.exe>)} 
                                              {(DQ ($ Id.VSub_DollarName '$name'))}
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:noexename)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {($ Id.VSub_DollarName '$func_stripname_result')}
                                                  spids: [50847]
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name name:rmfiles)
                                                  op: assign_op.Equal
                                                  rhs: 
                                                    {
                                                      (DQ ($ Id.VSub_DollarName '$rmfiles') <' '> 
                                                        ($ Id.VSub_DollarName '$file')
                                                      )
                                                    }
                                                  spids: [50859]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50810 50812 50867 -1]
                                        )
                                      ]
                                    )
                                    (command.If
                                      arms: [
                                        (if_arm
                                          cond: [
                                            (command.Sentence
                                              child: 
                                                (C {<func_ltwrapper_p>} 
                                                  {(DQ ($ Id.VSub_DollarName '$file'))}
                                                )
                                              terminator: <Id.Op_Semi _>
                                            )
                                          ]
                                          action: [
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (command.Sentence
                                                      child: 
                                                        (C {<func_ltwrapper_executable_p>} 
                                                          {(DQ ($ Id.VSub_DollarName '$file'))}
                                                        )
                                                      terminator: <Id.Op_Semi _>
                                                    )
                                                  ]
                                                  action: [
                                                    (C {<func_ltwrapper_scriptname>} 
                                                      {(DQ ($ Id.VSub_DollarName '$file'))}
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:relink_command)
                                                          op: assign_op.Equal
                                                          rhs: (word.Empty)
                                                          spids: [50908]
                                                        )
                                                      ]
                                                    )
                                                    (C {<func_source>} 
                                                      {
                                                        ($ Id.VSub_DollarName 
'$func_ltwrapper_scriptname_result'
                                                        )
                                                      }
                                                    )
                                                    (command.ShAssignment
                                                      pairs: [
                                                        (assign_pair
                                                          lhs: (sh_lhs_expr.Name name:rmfiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rmfiles') 
                                                                <' '> ($ Id.VSub_DollarName '$func_ltwrapper_scriptname_result')
                                                              )
                                                            }
                                                          spids: [50916]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [50889 50898]
                                                )
                                              ]
                                              else_action: [
                                                (command.ShAssignment
                                                  pairs: [
                                                    (assign_pair
                                                      lhs: (sh_lhs_expr.Name name:relink_command)
                                                      op: assign_op.Equal
                                                      rhs: (word.Empty)
                                                      spids: [50927]
                                                    )
                                                  ]
                                                )
                                                (C {<func_source>} 
                                                  {($ Id.VSub_DollarName '$dir') <'/'> 
                                                    ($ Id.VSub_DollarName '$noexename')
                                                  }
                                                )
                                              ]
                                            )
                                            (command.ShAssignment
                                              pairs: [
                                                (assign_pair
                                                  lhs: (sh_lhs_expr.Name 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: [50949]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:rmfiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rmfiles') 
                                                                <' '> ($ Id.VSub_DollarName '$objdir') <'/lt-'> ($ Id.VSub_DollarName '$name')
                                                              )
                                                            }
                                                          spids: [50995]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [50969 50992]
                                                )
                                              ]
                                            )
                                            (command.If
                                              arms: [
                                                (if_arm
                                                  cond: [
                                                    (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 name:rmfiles)
                                                          op: assign_op.Equal
                                                          rhs: 
                                                            {
                                                              (DQ ($ Id.VSub_DollarName '$rmfiles') 
                                                                <' '> ($ Id.VSub_DollarName '$objdir') <'/lt-'> (${ Id.VSub_Name noexename) <.c>
                                                              )
                                                            }
                                                          spids: [51030]
                                                        )
                                                      ]
                                                    )
                                                  ]
                                                  spids: [51008 51027]
                                                )
                                              ]
                                            )
                                          ]
                                          spids: [50877 50886]
                                        )
                                      ]
                                    )
                                  ]
                                  spids: [50782 50796]
                                )
                              ]
                            )
                          ]
                          spids: [50778 50779 51052 -1]
                        )
                      ]
                    )
                    (C {<func_show_eval>} 
                      {(DQ ($ Id.VSub_DollarName '$RM') <' '> ($ Id.VSub_DollarName '$rmfiles'))} {(SQ <'exit_status=1'>)}
                    )
                  ]
                )
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:objdir)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$origobjdir'))}
                  spids: [51074]
                )
              ]
            )
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$rmdirs')}]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (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: [51097 51108]
                        )
                      ]
                    )
                  ]
                )
            )
            (command.ControlFlow
              token: <Id.ControlFlow_Exit exit>
              arg_word: {($ Id.VSub_DollarName '$exit_status')}
            )
          ]
        )
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (BraceGroup
          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 _>
            )
          ]
        )
        (C {<func_mode_uninstall>} 
          {
            (braced_var_sub
              token: <Id.VSub_Number 1>
              suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{(DQ ($ Id.VSub_At '$@'))})
            )
          }
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$mode'))})
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:help)
                  op: assign_op.Equal
                  rhs: {(DQ ($ Id.VSub_DollarName '$generic_help'))}
                  spids: [51188]
                )
              ]
            )
            (C {<func_fatal_help>} {(DQ <'you must specify a MODE'>)})
          ]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp]
      children: [
        (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$exec_cmd'))})
        (C {<func_fatal_help>} 
          {
            (DQ <'invalid operation mode '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\`'>) 
              ($ Id.VSub_DollarName '$mode') <'\''>
            )
          }
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (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: [51225 51236]
        )
      ]
    )
    (command.ControlFlow
      token: <Id.ControlFlow_Exit exit>
      arg_word: {($ Id.VSub_DollarName '$exit_status')}
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_libtool_libs)
          op: assign_op.Equal
          rhs: {<no>}
          spids: [51295]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_old_libs)
          op: assign_op.Equal
          rhs: {<yes>}
          spids: [51298]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:build_old_libs)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_Backtick '`'>
                child: 
                  (command.Case
                    to_match: {($ Id.VSub_DollarName '$build_libtool_libs')}
                    arms: [
                      (case_arm
                        pat_list: [{<yes>}]
                        action: [(C {<echo>} {<no>})]
                        spids: [51318 51319 51324 -1]
                      )
                      (case_arm
                        pat_list: [{<Id.Lit_Star '*'>}]
                        action: [(C {<echo>} {<yes>})]
                        spids: [51326 51327 51332 -1]
                      )
                    ]
                  )
              )
            }
          spids: [51308]
        )
      ]
    )
  ]
)