Where can I find GNU for NT?

At U. of Texas which has a version that was compiled under NT 3.1. You should also look at Yale University's GNU archive to find GCC and GNAT for NT. Also, if can connect you'll be able to find a mirror at CICA.

One caveat: when using WinZipNT to extract the GNU archives, disable CR/LF translation or you else you will get the "not a valid executable" when attempting to use the binaries. Thanks to Garth Kidd

A commercialized version, called Toolbuster is made by Congruent, and can be purchased from The Programmer's Shop (+1-617-740-0101 US$180).

According to Chris Patti :

The GNU tools [Congruent] offered for ~$250 CLAIM to be fully supported but my company has been SORELY dissappointed with their performance so far.

They include a version of emacs that's among the worst ports I've ever encountered. Many of the other GNU tools barely work (e.g. less exhibits all sorts of bizarre behaviour, etc)

What other toolkits are there?

Since there is a similarity of function between numerous UNIX calls and NT services, a number of bright people have the idea of mapping UNIX calls to NT. This can simplfy life in some respects or complicate it. See the Opinion section. Having said that, the following toolkits may be of use to you.

Of course MKS sells its popular toolkit for NT.

Doug Hamilton has an excellent C-Shell port that includes many utilities.

Datafocus, with its NuTCRACKER product, has one of the most complete UNIX-like libraries available for NT.

According to an old Microsoft list, Hippix also sells a package similar to Congruent, but alas it seems that Hippix has gone out of business. Hippix can still be purchased from Pacific HiTech for very cheap.

There is a brave solo attempt to wrap many NT routines in UNIX-like jackets. There is considerably more work to be done in this area, but you can find the current state of affairs at the DOWNHILL project.

There is also Unite, a product from Consensys. It claims to be a direct port of UNIX System V Release 4 source code and includes over 100 commands and the C and Korn shells. [pointers, please! -Ed.]

What if my codebase is already on Windows?

As alternative, you can maintain your code on Windows, and then port from there to other platforms.

There are also several products that help your Windows code run on UNIX. The general idea is to take Microsoft's class hierarchy, called MFC or Microsoft Foundation Classes, and port them to various other platforms including UNIX. Microsoft does maintain greatest control this way.

Mainsoft publishes one that includes mapping to X calls. - Thanks to David Herron of Mainsoft

Another, called Wind/U, is produced by Bristol.