(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-e)})
    (C {(.)} {(/etc/make.conf)})
    (command.Simple
      words: [{(exec)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:19)
          fd: -1
          arg_word: {(Makefile)}
        )
      ]
    )
    (command.Simple
      words: [{(exec)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'3>' span_id:24)
          fd: 3
          arg_word: {(Makedepend-ack)}
        )
      ]
    )
    (command.Simple
      words: [{(exec)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'4>' span_id:29)
          fd: 4
          arg_word: {(Makedepend-gnu)}
        )
      ]
    )
    (C {(touch)} {(.depend-ack)})
    (C {(touch)} {(.depend-gnu)})
    (C {(echo)} {(DQ ('#Generated from ') ($ Id.VSub_Number '$1') (/Makefile.in))})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:ACKBASE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$2')}
          spids: [50]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:GNUBASE)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$3')}
          spids: [53]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:OBJDIR)
          op: assign_op.Equal
          rhs: {($ Id.VSub_Number '$1')}
          spids: [56]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:RECURSIVE_TARGETS)
          op: assign_op.Equal
          rhs: {(DQ ('clean depend depend-ack depend-gnu'))}
          spids: [60]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(-z)} {($ Id.VSub_DollarName '$ACKBASE')} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:75)
            )
          ]
          action: [
            (command.Sentence
              child: (C {(echo)} {(ACKBASE)} {(is)} {(not)} {(Id.KW_Set set) (Id.KW_Bang '!')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:89)
            )
            (command.Sentence
              child: 
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:91)
                  arg_word: {(1)}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:94)
            )
          ]
          spids: [66 77]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(-z)} {($ Id.VSub_DollarName '$GNUBASE')} 
                  {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:107)
            )
          ]
          action: [
            (command.Sentence
              child: (C {(echo)} {(GNUBASE)} {(is)} {(not)} {(Id.KW_Set set) (Id.KW_Bang '!')})
              terminator: (Token id:Id.Op_Semi val:';' span_id:121)
            )
            (command.Sentence
              child: 
                (command.ControlFlow
                  token: (Token id:Id.ControlFlow_Exit val:exit span_id:123)
                  arg_word: {(1)}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:126)
            )
          ]
          spids: [98 109]
        )
      ]
    )
    (C {(.)} {(Makefile.in)})
    (C {(echo)} {(DQ ('all: all-ack'))})
    (C {(echo)})
    (C {(echo)} {(DQ ('all-ack:'))})
    (C {(echo)} {(DQ ('all-gnu:'))})
    (C {(echo)})
    (C {(echo)} {(DQ ('makefiles: Makefile'))})
    (C {(echo)} {(DQ ('Makedepend-ack Makedepend-gnu: '))})
    (C {(echo)} 
      {
        (DQ ('\tsh ') ($ Id.VSub_Number '$0') (' ') ($ Id.VSub_DollarName '$OBJDIR') (' ') 
          ($ Id.VSub_DollarName '$ACKBASE') (' ') ($ Id.VSub_DollarName '$GNUBASE')
        )
      }
    )
    (C {(echo)})
    (C {(echo)} {(DQ ('Makefile: Makefile.in Makedepend-ack Makedepend-gnu'))})
    (C {(echo)} 
      {
        (DQ ('\tsh ') ($ Id.VSub_Number '$0') (' ') ($ Id.VSub_DollarName '$OBJDIR') (' ') 
          ($ Id.VSub_DollarName '$ACKBASE') (' ') ($ Id.VSub_DollarName '$GNUBASE')
        )
      }
    )
    (C {(echo)} {(DQ ('\t@echo'))})
    (C {(echo)} {(DQ ('\t@echo *Attention*'))})
    (C {(echo)} {(DQ ('\t@echo Makefile is regenerated... rerun command to see changes'))})
    (C {(echo)} {(DQ ('\t@echo *Attention*'))})
    (C {(echo)} {(DQ ('\t@echo'))})
    (C {(echo)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {(Id.KW_Bang '!')} {(-z)} 
                  {(DQ ($ Id.VSub_DollarName '$SUBDIRS'))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:256)
            )
          ]
          action: [
            (C {(echo)} {(DQ ('all-ack: makefiles'))})
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$SUBDIRS')}]
              do_arg_iter: F
              body: 
                (command.BraceGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                                  {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (ack))} 
                                  {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:303)
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ('\tmkdir -p ') ($ Id.VSub_DollarName '$ACKBASE') (/) 
                                  ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$dir')
                                )
                              }
                            )
                          ]
                          spids: [280 305]
                        )
                      ]
                    )
                    (C {(echo)} 
                      {
                        (DQ ('\tcd ') ($ Id.VSub_DollarName '$dir') (' && ') 
                          (word_part.EscapedLiteral
                            token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:329)
                          ) ('(MAKE) ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:331)) ('@')
                        )
                      }
                    )
                  ]
                )
            )
            (C {(echo)})
            (C {(echo)} {(DQ ('all-gnu: makefiles'))})
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$SUBDIRS')}]
              do_arg_iter: F
              body: 
                (command.BraceGroup
                  children: [
                    (command.If
                      arms: [
                        (if_arm
                          cond: [
                            (command.Sentence
                              child: 
                                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                                  {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (gnu))} 
                                  {(Id.Lit_RBracket ']')}
                                )
                              terminator: (Token id:Id.Op_Semi val:';' span_id:384)
                            )
                          ]
                          action: [
                            (C {(echo)} 
                              {
                                (DQ ('\tmkdir -p ') ($ Id.VSub_DollarName '$GNUBASE') (/) 
                                  ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$dir')
                                )
                              }
                            )
                          ]
                          spids: [361 386]
                        )
                      ]
                    )
                    (C {(echo)} 
                      {
                        (DQ ('\tcd ') ($ Id.VSub_DollarName '$dir') (' && ') 
                          (word_part.EscapedLiteral
                            token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:412)
                          ) ('(MAKE) ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:414)) ('@')
                        )
                      }
                    )
                  ]
                )
            )
            (C {(echo)})
            (C {(echo)} {(DQ ($ Id.VSub_DollarName '$RECURSIVE_TARGETS') (':: makefiles'))})
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$SUBDIRS')}]
              do_arg_iter: F
              body: 
                (command.BraceGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ('\tcd ') ($ Id.VSub_DollarName '$dir') (' && ') 
                          (word_part.EscapedLiteral
                            token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:477)
                          ) ('(MAKE) ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:479)) ('@')
                        )
                      }
                    )
                  ]
                )
            )
            (C {(echo)})
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$SUBDIRS')}]
              do_arg_iter: F
              body: 
                (command.BraceGroup
                  children: [
                    (C {(echo)} {(DQ ('makefiles: ') ($ Id.VSub_DollarName '$dir') (/Makefile))})
                  ]
                )
            )
            (C {(echo)})
            (command.ForEach
              iter_name: dir
              iter_words: [{($ Id.VSub_DollarName '$SUBDIRS')}]
              do_arg_iter: F
              body: 
                (command.BraceGroup
                  children: [
                    (C {(echo)} 
                      {
                        (DQ ($ Id.VSub_DollarName '$dir') ('/Makefile: ') ($ Id.VSub_DollarName '$dir') 
                          (/Makefile.in)
                        )
                      }
                    )
                    (C {(echo)} 
                      {
                        (DQ ('\tcd ') ($ Id.VSub_DollarName '$dir') (' && sh ../') 
                          ($ Id.VSub_Number '$0') (' ') ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$dir') (' ../') 
                          ($ Id.VSub_DollarName '$ACKBASE') (' ../') ($ Id.VSub_DollarName '$GNUBASE') (' && ') 
                          (word_part.EscapedLiteral
                            token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:555)
                          ) ('(MAKE) makefiles')
                        )
                      }
                    )
                  ]
                )
            )
          ]
          spids: [243 258]
        )
      ]
      else_action: [
        (C {(echo)} {(DQ ('depend: depend-ack'))})
        (command.Simple
          words: [{(echo)} {(DQ ('depend-ack:'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:578)
              fd: -1
              arg_word: {(3)}
            )
          ]
        )
        (command.Simple
          words: [{(echo)} {(DQ ('\trm .depend-ack'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:587)
              fd: -1
              arg_word: {(3)}
            )
          ]
        )
        (command.Simple
          words: [{(echo)} {(DQ ('\ttouch .depend-ack'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:596)
              fd: -1
              arg_word: {(3)}
            )
          ]
        )
        (command.Simple
          words: [{(echo)} {(DQ ('depend-gnu:'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:606)
              fd: -1
              arg_word: {(4)}
            )
          ]
        )
        (command.Simple
          words: [{(echo)} {(DQ ('\trm .depend-gnu'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:615)
              fd: -1
              arg_word: {(4)}
            )
          ]
        )
        (command.Simple
          words: [{(echo)} {(DQ ('\ttouch .depend-gnu'))}]
          redirects: [
            (redir.Redir
              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:624)
              fd: -1
              arg_word: {(4)}
            )
          ]
        )
        (command.ShFunction
          name: ackCommands
          body: 
            (command.BraceGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:dstfile)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [635]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:srcfile)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$2')}
                      spids: [639]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:dstdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:644)
                            command_list: 
                              (command.CommandList
                                children: [(C {(dirname)} {($ Id.VSub_DollarName '$dstfile')})]
                              )
                          )
                        }
                      spids: [643]
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$srcfile')}
                  arms: [
                    (case_arm
                      pat_list: [
                        {(Id.Lit_Star '*') (.s)}
                        {(Id.Lit_Star '*') (.c)}
                        {(Id.Lit_Star '*') (.e)}
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tcc ') ($ Id.VSub_DollarName '$CFLAGS') (' -c -o ') 
                              ($ Id.VSub_DollarName '$dstfile') (' ') ($ Id.VSub_DollarName '$srcfile')
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'cc ") ($ Id.VSub_DollarName '$CFLAGS') (" -E' ") 
                                ($ Id.VSub_DollarName '$srcfile') (" | sed -e 's:^") (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('):') ($ Id.VSub_DollarName '$dstdir') 
                                (/) (Id.Lit_Other '\\') ("1:' >> .depend-ack")
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:710)
                              fd: -1
                              arg_word: {(3)}
                            )
                          ]
                        )
                      ]
                      spids: [662 675 714 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (.mod)}]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tm2 ') ($ Id.VSub_DollarName '$M2FLAGS') (' -c -o ') 
                              ($ Id.VSub_DollarName '$dstfile') (' ') ($ Id.VSub_DollarName '$srcfile')
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'm2 ") ($ Id.VSub_DollarName '$M2FLAGS') (" -E' ") 
                                ($ Id.VSub_DollarName '$srcfile') (" | sed -e 's:^") (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('):') ($ Id.VSub_DollarName '$dstdir') 
                                (/) (Id.Lit_Other '\\') ("1:' >> .depend-ack")
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:755)
                              fd: -1
                              arg_word: {(3)}
                            )
                          ]
                        )
                      ]
                      spids: [717 720 759 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (.fc)}]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tsh ./FP.compile ') ($ Id.VSub_DollarName '$dstfile') (' ') 
                              ($ Id.VSub_DollarName '$srcfile')
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'cc -E' ") ($ Id.VSub_DollarName '$srcfile') 
                                (" | sed -e 's:^") (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('):') ($ Id.VSub_DollarName '$dstdir') (/) 
                                (Id.Lit_Other '\\') ("1:' >> .depend-ack")
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:796)
                              fd: -1
                              arg_word: {(3)}
                            )
                          ]
                        )
                      ]
                      spids: [762 765 800 -1]
                    )
                  ]
                )
              ]
            )
        )
        (command.ShFunction
          name: gnuCommands
          body: 
            (command.BraceGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:dstfile)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$1')}
                      spids: [815]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:srcfile)
                      op: assign_op.Equal
                      rhs: {($ Id.VSub_Number '$2')}
                      spids: [819]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:dstdir)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:824)
                            command_list: 
                              (command.CommandList
                                children: [(C {(dirname)} {($ Id.VSub_DollarName '$dstfile')})]
                              )
                          )
                        }
                      spids: [823]
                    )
                  ]
                )
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:sedcmd)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (DQ ("sed -e '/<built-in>/d' -e '/<command line>/d' -e 's:^") 
                            (Id.Lit_Other '\\') ('(.') (Id.Lit_Other '\\') ('):') ($ Id.VSub_DollarName '$dstdir') (/) (Id.Lit_Other '\\') ("1:'")
                          )
                        }
                      spids: [833]
                    )
                  ]
                )
                (command.Case
                  to_match: {($ Id.VSub_DollarName '$srcfile')}
                  arms: [
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (.s)}]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tgcc ') ($ Id.VSub_DollarName '$CFLAGS') 
                              (' -E -x assembler-with-cpp -I. ') ($ Id.VSub_DollarName '$srcfile') (' | asmconv -mi386 ack gnu > ') ($ Id.VSub_DollarName '$GNUBASE') (/) 
                              ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$srcfile') (.gnu)
                            )
                          }
                        )
                        (C {(echo)} 
                          {
                            (DQ ('\tgas -o ') ($ Id.VSub_DollarName '$dstfile') (' ') 
                              ($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$srcfile') (.gnu)
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'gcc ") ($ Id.VSub_DollarName '$CFLAGS') 
                                (" -E -x assembler-with-cpp -I.' ") ($ Id.VSub_DollarName '$srcfile') (' | ') ($ Id.VSub_DollarName '$sedcmd') (' >> .depend-gnu')
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:908)
                              fd: -1
                              arg_word: {(4)}
                            )
                          ]
                        )
                      ]
                      spids: [856 859 912 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (.gs)}]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tgas -o ') ($ Id.VSub_DollarName '$dstfile') (' ') 
                              ($ Id.VSub_DollarName '$srcfile')
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'gcc ") ($ Id.VSub_DollarName '$CFLAGS') 
                                (" -E -x assembler-with-cpp -I.' ") ($ Id.VSub_DollarName '$srcfile') (' | ') ($ Id.VSub_DollarName '$sedcmd') (' >> .depend-gnu')
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:945)
                              fd: -1
                              arg_word: {(4)}
                            )
                          ]
                        )
                      ]
                      spids: [915 918 949 -1]
                    )
                    (case_arm
                      pat_list: [{(Id.Lit_Star '*') (.c)}]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('\tgcc ') ($ Id.VSub_DollarName '$CFLAGS') (' -c -o ') 
                              ($ Id.VSub_DollarName '$dstfile') (' ') ($ Id.VSub_DollarName '$srcfile')
                            )
                          }
                        )
                        (command.Simple
                          words: [
                            {(echo)}
                            {
                              (DQ ("\tmkdep 'gcc ") ($ Id.VSub_DollarName '$CFLAGS') (" -E' ") 
                                ($ Id.VSub_DollarName '$srcfile') (' | ') ($ Id.VSub_DollarName '$sedcmd') (' >> .depend-gnu')
                              )
                            }
                          ]
                          redirects: [
                            (redir.Redir
                              op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:984)
                              fd: -1
                              arg_word: {(4)}
                            )
                          ]
                        )
                      ]
                      spids: [952 955 988 -1]
                    )
                  ]
                )
                (C {(echo)})
              ]
            )
        )
        (command.ForEach
          iter_name: lib
          iter_words: [{($ Id.VSub_DollarName '$LIBRARIES')}]
          do_arg_iter: F
          body: 
            (command.BraceGroup
              children: [
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                              {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (ack))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1060)
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('all-ack: ') ($ Id.VSub_DollarName '$ACKBASE') (/) 
                              ($ Id.VSub_DollarName '$lib') (.a)
                            )
                          }
                        )
                        (C {(eval)} 
                          {
                            (DQ ('FILES=') 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1080)
                              ) (${ Id.VSub_Name lib) (_FILES)
                            )
                          }
                        )
                        (C {(echo)})
                        (command.ForEach
                          iter_name: f
                          iter_words: [{($ Id.VSub_DollarName '$FILES')}]
                          do_arg_iter: F
                          body: 
                            (command.BraceGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:o)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_Backtick
                                                val: '`'
                                                span_id: 1105
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ Id.VSub_DollarName '$f')})
                                                      (C {(sed)} {(-e)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: 's/\\..*$/\\.o/'
                                                              span_id: 1125
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [1104]
                                    )
                                  ]
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$ACKBASE') (/) 
                                      ($ Id.VSub_DollarName '$lib') ('.a: ') ($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$lib') ('.a(') 
                                      ($ Id.VSub_DollarName '$o') (')')
                                    )
                                  }
                                )
                              ]
                            )
                        )
                        (C {(echo)})
                        (C {(echo)} 
                          {
                            (DQ ($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$lib') 
                              ('.a:')
                            )
                          }
                        )
                        (C {(echo)} 
                          {
                            (DQ ('\tar cr ') ($ Id.VSub_DollarName '$ACKBASE') (/) 
                              ($ Id.VSub_DollarName '$lib') ('.a ') ($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$OBJDIR') ('/*.o')
                            )
                          }
                        )
                        (C {(echo)} 
                          {
                            (DQ ('\trm ') ($ Id.VSub_DollarName '$ACKBASE') (/) 
                              ($ Id.VSub_DollarName '$OBJDIR') ('/*.o')
                            )
                          }
                        )
                        (C {(echo)})
                        (command.ForEach
                          iter_name: f
                          iter_words: [{($ Id.VSub_DollarName '$FILES')}]
                          do_arg_iter: F
                          body: 
                            (command.BraceGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:o)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_Backtick
                                                val: '`'
                                                span_id: 1204
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ Id.VSub_DollarName '$f')})
                                                      (C {(sed)} {(-e)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: 's/\\..*$/\\.o/'
                                                              span_id: 1224
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [1203]
                                    )
                                  ]
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$ACKBASE') (/) 
                                      ($ Id.VSub_DollarName '$lib') ('.a(') ($ Id.VSub_DollarName '$o') ('): ') ($ Id.VSub_DollarName '$f')
                                    )
                                  }
                                )
                                (C {(ackCommands)} 
                                  {($ Id.VSub_DollarName '$ACKBASE') (/) 
                                    ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$o')
                                  } {($ Id.VSub_DollarName '$f')}
                                )
                              ]
                            )
                        )
                        (C {(echo)})
                      ]
                      spids: [1037 1062]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                              {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (gnu))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1289)
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('all-gnu: ') ($ Id.VSub_DollarName '$GNUBASE') (/) 
                              ($ Id.VSub_DollarName '$lib') (.a)
                            )
                          }
                        )
                        (C {(eval)} 
                          {
                            (DQ ('FILES=') 
                              (word_part.EscapedLiteral
                                token: (Token id:Id.Lit_EscapedChar val:'\\$' span_id:1309)
                              ) (${ Id.VSub_Name lib) (_FILES)
                            )
                          }
                        )
                        (C {(echo)})
                        (command.ForEach
                          iter_name: f
                          iter_words: [{($ Id.VSub_DollarName '$FILES')}]
                          do_arg_iter: F
                          body: 
                            (command.BraceGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:o)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_Backtick
                                                val: '`'
                                                span_id: 1334
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ Id.VSub_DollarName '$f')})
                                                      (C {(sed)} {(-e)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: 's/\\..*$/\\.o/'
                                                              span_id: 1354
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [1333]
                                    )
                                  ]
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$GNUBASE') (/) 
                                      ($ Id.VSub_DollarName '$lib') ('.a: ') ($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$OBJDIR') (/) 
                                      ($ Id.VSub_DollarName '$o')
                                    )
                                  }
                                )
                              ]
                            )
                        )
                        (C {(echo)})
                        (C {(echo)} 
                          {
                            (DQ ($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$lib') 
                              ('.a:')
                            )
                          }
                        )
                        (C {(echo)} 
                          {
                            (DQ ('\tgar cr ') ($ Id.VSub_DollarName '$GNUBASE') (/) 
                              ($ Id.VSub_DollarName '$lib') ('.a ') (word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\$' span_id:1398)) ('?')
                            )
                          }
                        )
                        (C {(echo)})
                        (command.ForEach
                          iter_name: f
                          iter_words: [{($ Id.VSub_DollarName '$FILES')}]
                          do_arg_iter: F
                          body: 
                            (command.BraceGroup
                              children: [
                                (command.ShAssignment
                                  pairs: [
                                    (assign_pair
                                      lhs: (sh_lhs_expr.Name name:o)
                                      op: assign_op.Equal
                                      rhs: 
                                        {
                                          (command_sub
                                            left_token: 
                                              (Token
                                                id: Id.Left_Backtick
                                                val: '`'
                                                span_id: 1419
                                              )
                                            command_list: 
                                              (command.CommandList
                                                children: [
                                                  (command.Pipeline
                                                    children: [
                                                      (C {(echo)} {($ Id.VSub_DollarName '$f')})
                                                      (C {(sed)} {(-e)} 
                                                        {
                                                          (SQ 
                                                            (Token
                                                              id: Id.Lit_Chars
                                                              val: 's/\\..*$/\\.o/'
                                                              span_id: 1439
                                                            )
                                                          )
                                                        }
                                                      )
                                                    ]
                                                    negated: F
                                                  )
                                                ]
                                              )
                                          )
                                        }
                                      spids: [1418]
                                    )
                                  ]
                                )
                                (C {(echo)} 
                                  {
                                    (DQ ($ Id.VSub_DollarName '$GNUBASE') (/) 
                                      ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$o') (': ') ($ Id.VSub_DollarName '$f')
                                    )
                                  }
                                )
                                (C {(gnuCommands)} 
                                  {($ Id.VSub_DollarName '$GNUBASE') (/) 
                                    ($ Id.VSub_DollarName '$OBJDIR') (/) ($ Id.VSub_DollarName '$o')
                                  } {($ Id.VSub_DollarName '$f')}
                                )
                              ]
                            )
                        )
                        (C {(echo)})
                      ]
                      spids: [1266 1291]
                    )
                  ]
                )
              ]
            )
        )
        (C {(echo)})
        (command.ForEach
          iter_name: f
          iter_words: [{($ Id.VSub_DollarName '$STARTFILES')}]
          do_arg_iter: F
          body: 
            (command.BraceGroup
              children: [
                (command.ShAssignment
                  pairs: [
                    (assign_pair
                      lhs: (sh_lhs_expr.Name name:o)
                      op: assign_op.Equal
                      rhs: 
                        {
                          (command_sub
                            left_token: (Token id:Id.Left_Backtick val:'`' span_id:1500)
                            command_list: 
                              (command.CommandList
                                children: [
                                  (command.Pipeline
                                    children: [
                                      (C {(echo)} {($ Id.VSub_DollarName '$f')})
                                      (C {(sed)} {(-e)} 
                                        {
                                          (SQ 
                                            (Token
                                              id: Id.Lit_Chars
                                              val: 's/\\..*$/\\.o/'
                                              span_id: 1520
                                            )
                                          )
                                        }
                                      )
                                    ]
                                    negated: F
                                  )
                                ]
                              )
                          )
                        }
                      spids: [1499]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                              {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (ack))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1550)
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('all-ack: ') ($ Id.VSub_DollarName '$ACKBASE') (/) 
                              ($ Id.VSub_DollarName '$o')
                            )
                          }
                        )
                        (C {(echo)})
                        (C {(echo)} 
                          {
                            (DQ ($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$o') (': ') 
                              ($ Id.VSub_DollarName '$f')
                            )
                          }
                        )
                        (C {(ackCommands)} 
                          {($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$o')} {($ Id.VSub_DollarName '$f')}
                        )
                        (C {(echo)})
                      ]
                      spids: [1527 1552]
                    )
                  ]
                )
                (command.If
                  arms: [
                    (if_arm
                      cond: [
                        (command.Sentence
                          child: 
                            (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} 
                              {(Id.Lit_Equals '=')} {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (gnu))} 
                              {(Id.Lit_RBracket ']')}
                            )
                          terminator: (Token id:Id.Op_Semi val:';' span_id:1617)
                        )
                      ]
                      action: [
                        (C {(echo)} 
                          {
                            (DQ ('all-gnu: ') ($ Id.VSub_DollarName '$GNUBASE') (/) 
                              ($ Id.VSub_DollarName '$o')
                            )
                          }
                        )
                        (C {(echo)})
                        (C {(echo)} 
                          {
                            (DQ ($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$o') (': ') 
                              ($ Id.VSub_DollarName '$f')
                            )
                          }
                        )
                        (C {(gnuCommands)} 
                          {($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$o')} {($ Id.VSub_DollarName '$f')}
                        )
                        (C {(echo)})
                      ]
                      spids: [1594 1619]
                    )
                  ]
                )
              ]
            )
        )
      ]
    )
    (C {(echo)})
    (C {(echo)} {(DQ ('clean::'))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} 
                  {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (ack))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:1699)
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('\trm -f ') ($ Id.VSub_DollarName '$ACKBASE') (/) ($ Id.VSub_DollarName '$OBJDIR') 
                  ('/*')
                )
              }
            )
          ]
          spids: [1676 1701]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} 
                  {(DQ (both))} {(-o)} {($ Id.VSub_DollarName '$TYPE')} {(Id.Lit_Equals '=')} {(DQ (gnu))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:1739)
            )
          ]
          action: [
            (C {(echo)} 
              {
                (DQ ('\trm -f ') ($ Id.VSub_DollarName '$GNUBASE') (/) ($ Id.VSub_DollarName '$OBJDIR') 
                  ('/*')
                )
              }
            )
          ]
          spids: [1716 1741]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$OBJDIR')} {(Id.Lit_Equals '=')} 
                  {(DQ (.))} {(Id.Lit_RBracket ']')}
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:1770)
            )
          ]
          action: [
            (C {(echo)})
            (C {(echo)} {(DQ ('install: install-ack'))})
            (C {(echo)})
            (C {(echo)} {(DQ ('install-ack: all-ack'))})
            (C {(echo)} 
              {
                (DQ ('\tcp ') ($ Id.VSub_DollarName '$ACKBASE') ('/*.[ao] /usr/lib/') 
                  ($ Id.VSub_DollarName '$ARCH')
                )
              }
            )
            (C {(echo)})
            (C {(echo)} {(DQ ('install-gnu: all-gnu'))})
            (C {(echo)} {(DQ ('\tcp ') ($ Id.VSub_DollarName '$GNUBASE') ('/*.[ao] /usr/gnu/lib'))})
          ]
          spids: [1757 1772]
        )
      ]
    )
    (C {(echo)})
    (C {(echo)} {(DQ ('include Makedepend-ack'))})
    (C {(echo)} {(DQ ('include .depend-ack'))})
    (C {(echo)})
    (C {(echo)} {(DQ ('include Makedepend-gnu'))})
    (C {(echo)} {(DQ ('include .depend-gnu'))})
  ]
)