(command.CommandList
  children: [
    (command.ShFunction
      name: die
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<echo>} {(DQ ($ Id.VSub_At '$@'))}]
              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:{<1>})
          ]
        )
    )
    (command.ShFunction
      name: clean
      body: 
        (BraceGroup
          children: [
            (command.Pipeline
              children: [(C {<echo>} {($ Id.VSub_Number '$1')}) (C {<sed>} {<-e>} {(SQ <'s/\\\\//g'>)})]
              negated: F
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_autoconf_version)
          op: assign_op.Equal
          rhs: {(SQ <'2\\.61'>)}
          spids: [67]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_autoheader_version)
          op: assign_op.Equal
          rhs: {($ Id.VSub_DollarName '$want_autoconf_version')}
          spids: [72]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_aclocal_version)
          op: assign_op.Equal
          rhs: {(SQ <'1\\.10'>)}
          spids: [75]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_libtool_version)
          op: assign_op.Equal
          rhs: {(SQ <'1\\.5\\.22'>)}
          spids: [80]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:outfile)
          op: assign_op.Equal
          rhs: {<configure>}
          spids: [89]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:configfile)
          op: assign_op.Equal
          rhs: {<configure.ac>}
          spids: [92]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_autoconf_version_clean)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<clean>} {($ Id.VSub_DollarName '$want_autoconf_version')})
              )
            }
          spids: [96]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_autoheader_version_clean)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<clean>} {($ Id.VSub_DollarName '$want_autoheader_version')})
              )
            }
          spids: [103]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_aclocal_version_clean)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<clean>} {($ Id.VSub_DollarName '$want_aclocal_version')})
              )
            }
          spids: [110]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:want_libtool_version_clean)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<clean>} {($ Id.VSub_DollarName '$want_libtool_version')})
              )
            }
          spids: [117]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DAmp Id.Op_DAmp]
      children: [
        (C {<test>} {<-d>} {<autoconf>})
        (C {<test>} {<-f>} {<'autoconf/'> ($ Id.VSub_DollarName '$configfile')})
        (C {<cd>} {<autoconf>})
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {<-f>} {($ Id.VSub_DollarName '$configfile')})
        (C {<die>} {(DQ <'Can\'t find \'autoconf\' dir; please cd into it first'>)})
      ]
    )
    (command.Pipeline
      children: [
        (C {<autoconf>} {<--version>})
        (command.Simple
          words: [{<grep>} {($ Id.VSub_DollarName '$want_autoconf_version')}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>})
        (C {<die>} 
          {
            (DQ <'Your autoconf was not detected as being '> 
              ($ Id.VSub_DollarName '$want_autoconf_version_clean')
            )
          }
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<aclocal>} {<--version>})
        (command.Simple
          words: [{<grep>} {(SQ <'^aclocal.*'>) ($ Id.VSub_DollarName '$want_aclocal_version')}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>})
        (C {<die>} 
          {
            (DQ <'Your aclocal was not detected as being '> 
              ($ Id.VSub_DollarName '$want_aclocal_version_clean')
            )
          }
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<autoheader>} {<--version>})
        (command.Simple
          words: [{<grep>} {(SQ <'^autoheader.*'>) ($ Id.VSub_DollarName '$want_autoheader_version')}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>})
        (C {<die>} 
          {
            (DQ <'Your autoheader was not detected as being '> 
              ($ Id.VSub_DollarName '$want_autoheader_version_clean')
            )
          }
        )
      ]
    )
    (command.Pipeline
      children: [
        (C {<libtool>} {<--version>})
        (command.Simple
          words: [{<grep>} {($ Id.VSub_DollarName '$want_libtool_version')}]
          redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
          do_fork: T
        )
      ]
      negated: F
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<test>} {($ Id.VSub_QMark '$?')} {<-eq>} {<0>})
        (C {<die>} 
          {
            (DQ <'Your libtool was not detected as being '> 
              ($ Id.VSub_DollarName '$want_libtool_version_clean')
            )
          }
        )
      ]
    )
    (C {<echo>} {(DQ )})
    (C {<echo>} {(DQ <'### NOTE: ############################################################'>)})
    (C {<echo>} {(DQ <'### If you get *any* warnings from autoconf below you MUST fix the'>)})
    (C {<echo>} {(DQ <'### scripts in the m4 directory because there are future forward'>)})
    (C {<echo>} {(DQ <'### compatibility or platform support issues at risk. Please do NOT'>)})
    (C {<echo>} {(DQ <'### commit any configure script that was generated with warnings'>)})
    (C {<echo>} {(DQ <'### present. You should get just three \'Regenerating..\' lines.'>)})
    (C {<echo>} {(DQ <'######################################################################'>)})
    (C {<echo>} {(DQ )})
    (C {<echo>} 
      {
        (DQ <'Regenerating aclocal.m4 with aclocal '> 
          ($ Id.VSub_DollarName '$want_aclocal_version_clean')
        )
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:cwd)
          op: assign_op.Equal
          rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<pwd>}))}
          spids: [349]
        )
      ]
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<aclocal>} {<--force>} {<-I>} {($ Id.VSub_DollarName '$cwd') <'/m4'>})
        (C {<die>} {(DQ <'aclocal failed'>)})
      ]
    )
    (C {<echo>} 
      {
        (DQ <'Regenerating configure with autoconf '> 
          ($ Id.VSub_DollarName '$want_autoconf_version_clean')
        )
      }
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<autoconf>} {<--force>} {<--warnings> <Id.Lit_Equals '='> <all>} {<-o>} 
          {<'../'> ($ Id.VSub_DollarName '$outfile')} {($ Id.VSub_DollarName '$configfile')}
        )
        (C {<die>} {(DQ <'autoconf failed'>)})
      ]
    )
    (C {<cd>} {<..>})
    (C {<echo>} 
      {
        (DQ <'Regenerating config.h.in with autoheader '> 
          ($ Id.VSub_DollarName '$want_autoheader_version_clean')
        )
      }
    )
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (C {<autoheader>} {<--warnings> <Id.Lit_Equals '='> <all>} {<-I>} {<autoconf>} {<-I>} 
          {<'autoconf/m4'>} {<'autoconf/'> ($ Id.VSub_DollarName '$configfile')}
        )
        (C {<die>} {(DQ <'autoheader failed'>)})
      ]
    )
    (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>})
  ]
)