There seem to be eight(!) different ways of building GNU Emacs on Windows; this page aims to list all of them in a nice regular way. Each of the eight methods has its own page. The name of each page consists of three parts:
For completeness, I’ll mention BuildingTwentyOneThreeCygwinMingw, BuildingTwentyOneThreeCygwinMsvc, BuildingCvsCygwinMingw, and BuildingCvsCygwinMsvc, none of which are applicable, since non-Cygwin toolchains cannot create Cygwin binaries.
Here is a page that seems to address many of the same issues. Your Correspondent hasn’t read it closely though.