(command.CommandList
  children: [
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (C {(set)} {(-o)} {(errexit)})
    (command.FuncDef
      name: show-checksum
      body: (command.BraceGroup children:[(C {(sha1sum)} {(k-script-build-static)})])
    )
    (command.FuncDef
      name: build
      body: 
        (command.BraceGroup
          children: [
            (C {(./configure)})
            (C {(rm)} {(-v)} {(-f)} {(k-script-build-static)})
            (command.TimeBlock pipeline:(C {(make)} {(k-script-build-static)}))
            (C {(./k-script-build-static)} {(--help)})
            (C {(show-checksum)})
          ]
        )
    )
    (command.FuncDef
      name: make-osh
      body: 
        (command.BraceGroup
          children: [
            (C {(./configure)})
            (C {(rm)} {(-v)} {(-f)} {(k-script-build-static)})
            (command.TimeBlock
              pipeline: 
                (C {(make)} {(Lit_VarLike 'SHELL=') (Lit_TildeLike '~') (/git/oilshell/oil/bin/osh)} 
                  {(k-script-build-static)}
                )
            )
            (C {(./k-script-build-static)} {(--help)})
            (C {(show-checksum)})
          ]
        )
    )
    (command.FuncDef
      name: osh
      body: 
        (command.BraceGroup
          children: [
            (C {(word_part.TildeSubPart token:<Lit_TildeLike '~'>) (/git/oilshell/oil/bin/osh)} 
              {(DQ ($ VSub_At '$@'))}
            )
          ]
        )
    )
    (command.FuncDef
      name: build-with-osh
      body: 
        (command.BraceGroup
          children: [
            (C {(rm)} {(-v)} {(-f)} {(k-script-build-static)})
            (C {(export)} {(Lit_VarLike 'PS4=') (SQ <'+${SOURCE_NAME}:${LINENO} '>)})
            (C {(pushd)} {(src)})
            (command.TimeBlock
              pipeline: 
                (C {(osh)} {(./k-script-build.sh)} {(--static)} {(--file)} {(k-script-build.sh)} 
                  {(--output)} {(../k-script-build-static)} {(--executable)}
                )
            )
            (C {(popd)})
            (C {(cp)} {(k-script-build-static)} {(k-script-build-static-OSH)})
            (C {(show-checksum)})
          ]
        )
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)