(CommandList
  children: [
    (C {(.)} {(../library.sh)})
    (C {(process_arguments)} {(DQ ($ VSub_At "$@"))})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:build_dir)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$LLVM_TOP") (/build.llvm))}
          spids: [34]
        )
      ]
      spids: [34]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (C {(test)} {(KW_Bang "!")} {(-d)} {(DQ ($ VSub_Name "$build_dir"))})
              terminator: <Op_Semi ";">
            )
          ]
          action: [(C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$build_dir"))})]
          spids: [-1 54]
        )
      ]
      spids: [-1 65]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:config_status)
          op: Equal
          rhs: {(DQ ($ VSub_Name "$build_dir") (/config.status))}
          spids: [74]
        )
      ]
      spids: [74]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (C {(test)} {(KW_Bang "!")} {(-f)} {(DQ ($ VSub_Name "$config_status"))} {(-o)} 
                  {(DQ ($ VSub_Name "$config_status"))} {(-ot)} {(DQ ($ VSub_Number "$0"))}
                )
              terminator: <Op_Semi ";">
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:config_options)
                  op: Equal
                  rhs: 
                    {
                      (DQ ("--prefix=") ($ VSub_Name "$PREFIX") (" --with-llvmgccdir=") 
                        ($ VSub_Name "$PREFIX")
                      )
                    }
                  spids: [113]
                )
              ]
              spids: [113]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$OPTIMIZED"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-optimized"))}
                          spids: [139]
                        )
                      ]
                      spids: [139]
                    )
                  ]
                  spids: [-1 136]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-optimized"))}
                      spids: [149]
                    )
                  ]
                  spids: [149]
                )
              ]
              spids: [146 156]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$DEBUG"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-debug"))}
                          spids: [176]
                        )
                      ]
                      spids: [176]
                    )
                  ]
                  spids: [-1 173]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-debug"))}
                      spids: [186]
                    )
                  ]
                  spids: [186]
                )
              ]
              spids: [183 193]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$ASSERTIONS"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-assertions"))}
                          spids: [213]
                        )
                      ]
                      spids: [213]
                    )
                  ]
                  spids: [-1 210]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-assertions"))}
                      spids: [223]
                    )
                  ]
                  spids: [223]
                )
              ]
              spids: [220 230]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$CHECKING"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-expensive-checks"))}
                          spids: [250]
                        )
                      ]
                      spids: [250]
                    )
                  ]
                  spids: [-1 247]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-expensive-checks"))}
                      spids: [260]
                    )
                  ]
                  spids: [260]
                )
              ]
              spids: [257 267]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$DOXYGEN"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-doxygen"))}
                          spids: [287]
                        )
                      ]
                      spids: [287]
                    )
                  ]
                  spids: [-1 284]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-doxygen"))}
                      spids: [297]
                    )
                  ]
                  spids: [297]
                )
              ]
              spids: [294 304]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: (C {(test)} {(DQ ($ VSub_Name "$THREADS"))} {(-eq)} {(1)})
                      terminator: <Op_Semi ";">
                    )
                  ]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:config_options)
                          op: Equal
                          rhs: {(DQ ($ VSub_Name "$config_options") (" --enable-threads"))}
                          spids: [324]
                        )
                      ]
                      spids: [324]
                    )
                  ]
                  spids: [-1 321]
                )
              ]
              else_action: [
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:config_options)
                      op: Equal
                      rhs: {(DQ ($ VSub_Name "$config_options") (" --disable-threads"))}
                      spids: [334]
                    )
                  ]
                  spids: [334]
                )
              ]
              spids: [331 341]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:config_options)
                  op: Equal
                  rhs: 
                    {
                      (DQ ($ VSub_Name "$config_options") (" ") ($ VSub_Name "$OPTIONS_DASH") (" ") 
                        ($ VSub_Name "$OPTIONS_DASH_DASH")
                      )
                    }
                  spids: [344]
                )
              ]
              spids: [344]
            )
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:src_dir)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: (CommandList children:[(C {(pwd)})])
                        left_token: <Left_Backtick "`">
                        spids: [355 357]
                      )
                    }
                  spids: [354]
                )
              ]
              spids: [354]
            )
            (C {(cd)} {(DQ ($ VSub_Name "$build_dir"))})
            (C {(msg)} {(0)} {(Configuring)} {($ VSub_Name "$module")} {(with) (Lit_Other ":")})
            (C {(msg)} {(0)} {(DQ ("  ") ($ VSub_Name "$src_dir") (/configure))} 
              {($ VSub_Name "$config_options")}
            )
            (AndOr
              children: [
                (C {($ VSub_Name "$src_dir") (/configure)} {($ VSub_Name "$config_options")})
                (C {(die)} {($ VSub_QMark "$?")} 
                  {(DQ ("Configuring ") ($ VSub_Name "$module") (" module failed"))}
                )
              ]
              op_id: Op_DPipe
            )
          ]
          spids: [-1 106]
        )
      ]
      else_action: [
        (C {(msg)} {(0)} {(Module)} {($ VSub_Name "$module")} {(already)} {(configured) (Lit_Comma ",")} 
          {(ignoring)} {(configure)} {(options.)}
        )
        (C {(cd)} {(DQ ($ VSub_Name "$build_dir"))})
      ]
      spids: [411 440]
    )
    (C {(msg)} {(0)} {(Building)} {($ VSub_Name "$module")} {(with) (Lit_Other ":")})
    (C {(msg)} {(0)} {(DQ ("  make"))} {($ VSub_Name "$OPTIONS_ASSIGN")} {(tools-only)})
    (C {(make)} {($ VSub_Name "$OPTIONS_ASSIGN")} {(tools-only)})
  ]
)