MinGW/Bootstrapping

= Bootstrapping MinGW =

MinGW source packages have a circular dependency:

mingw32-gcc <---+ |    |       required for | ++    +---+                |          | required for |                | V             V                | mingw32-runtime  mingw32-w32api        | |             |                |          +--++

So when you build mingw32-gcc for the first time, you have to get a binary of mingw32-runtime & mingw32-w32api from somewhere.

Note this only applies the first time or if you are building from scratch on a brand new system. Later builds can just build using earlier installs.

Bootstrap packages
To break the dependency we normally use two special packages, mingw32-runtime-bootstrap and mingw32-w32api-bootstrap.

These two non-Fedora packages contain the binaries of runtime & w32api, from MinGW's download site.

The above describes the old bootstrapping method, but nowadays we prefer to just grab a binary of the  and   packages built on another machine (both packages are noarch). You can grab the latest binaries from our temporary repository, until they get added to Fedora proper.

Once these are installed, you can build mingw32-gcc, followed by the real mingw32-runtime and mingw32-w32api (from source).

Obsoletes
When mingw32-runtime and mingw32-w32api final packages are installed, they obsolete the -bootstrap packages which are no longer needed or useful.