[LLVMdev] [cfe-dev] RFC: "Building with MinGW on Windows" (DOC, 2ND TRY)

Nikola Smiljanic
Mon, 18 Jun 2012 12:24:47 -0000

On Mon, Jun 18, 2012 at 12:25 PM, Mikael Lyngvig <mikael at lyngvig.org>
wrote:
> Hi all,
>
>     3. The document now covers 32-bit and 64-bit builds with MinGW tools
(if
> anybody know of an alternate BINARY distribution of MinGW64 than
Drangon's
> release, please let me know so I can include it in the document).

As was once explained to me by Ruben Van Boxem, what you call mingw32
should probably be called mingw.org (or maybe only mingw). The other
one should be called MinGW-w64. Also note that MinGW-w64 can target
both 32-bit and 64-bit windows!

I was also informed that nightly builds of mingw-w64 are rock solid,
so here's a link to toolchain targeting Win64
http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/release/

As for the rest of the document I have only one complaint that's more
a matter of style and taste. The document sounds like tutorial and is
very different from say "getting started" which is more to the point.
I'll try to be more concrete:

"Building LLVM on Windows using the MinGW32 or MinGW64 toolchains can seem
daunting at first."

I never had this impression, you just checkout clang, unpack mingw,
run cmake, run ming32-make. Also note that I knew next to nothing
about mingw when I first did this.

Mingw vs VS issues

I think it would be fair to say that mingw is better supported without
having to list every feature that doesn't work with VS (who will
remember to change this page when the features get implemented?). I'm
also assuming the person already knows why he wants to use mingw.

Reference to "Getting Started"
I think that Getting Started page should have a link to your document
as the official Clang+Mingw information. You don't really need to
refer back to Getting started, infinite loop anyone :)

As Justin said, I would concentrate more on the official tools like ming32-make.

The way I imagine this is:
- explain how to choose mingw flavor
- checkout llvm/clang
- how to use cmake to generate makefiles
- how to build using ming32-make
- how to debug
- how to run tests (python, gnuwin32, subversion)
- mention alternative tools like ninja build

As I said, this is just my personal preference, I just had the
impression that your document was too long and covered a lot of ground
that it didn't really have to.