(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: [16777215 54]
        )
      ]
      spids: [16777215 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: [16777215 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: [16777215 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: [16777215 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: [16777215 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: [16777215 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: [16777215 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
              ops: [Op_DPipe]
              children: [
                (C {($ VSub_Name '$src_dir') (/configure)} {($ VSub_Name '$config_options')})
                (C {(die)} {($ VSub_QMark '$?')} 
                  {(DQ ('Configuring ') ($ VSub_Name '$module') (' module failed'))}
                )
              ]
            )
          ]
          spids: [16777215 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)})
  ]
)