I've had an...interesting... week. First the kids were home the entire first week of this month (stupid winter break) which limited my computer time. Then I ended up with mastitis and spent two days in bed with a fever. Of course after the weekend when I could get to the doctor and get drugs I recovered quickly, but my house was trashed from my kids running wild. So I had to catch up on all that boring mom stuff that men seem incapable of doing (laundry, dishes, putting toys away, yeah). Now, finally, we are back to our regularly scheduled nuttiness.
There are two "compile environments" for windows. One uses Mingw (Win32 API + GCC) either with the Msys tools or Cygwin (yes you can use cygwin + msys to create native windows apps without the posix layer) for a very unixy approach to compiling on windows. These happen to be a favorite with most open source developers who aren't too big on "the Microsoft way".
The second way to compile on windows is to use Microsoft's tools - I've already done a tutorial for setting up the environment.
You can argue back and forth between the two approaches but I personally prefer to use MSVC - why? Well not because it's easier, and definitely not because other developers use it. For me it's the knowledge that Microsoft wrote the monstrosity known as windows and they probably have a better idea of how to compile things optimally for their system. Now this may be a totally inaccurate view, but somehow the idea is stuck in my brain.
In any case - I've been working on getting the entire gtk+ runtime (and all it's dependencies) compiling with MSVC so they all use the same C runtime so I don't have mysterious crashes when the runtimes disagree with each other. It has been quite an adventure. The biggest problem is that unix style build systems rely heavily on a command line environment and a configure command, while msvc leans on their visual ide. Combined with the fact that open source items that do compile on windows each use their own style of configuring it turns into a mess pretty darn fast.
Glib has an interesting configure system made of windows style makefiles, a bit of perl, and pre-created config.h files. They're all annoying called makefile.msc, which of course windows things is a management console plugin... I've found the system to be not horrible but not wonderful either.
Because of the very different methods of building with msvc on windows I've been slowly creating a monster (and I do mean monster) MSVC Solution. Because I don't have the "full version" I can't use any fancy organizing methods (sub-solutions, solution folders, whatever flavor of the week MS has concocted) which kind of stinks but I'll get by. I'm hoping to make the finished projects (along with some assorted batch files) available when it's complete. I'm structuring it so you simply download the latest source files for each project you want to compile, rename the folders to the base name of the project (gettext-0.16.2 becomes just gettext) and drop it in the source folder. Then you can build the solution and look in release or debug for neatly organized files.
However, it is taking a LONG time to complete this project. First of all, there are a LOT of packages that gtk depends on. Right now the list stands at iconv, gettext, libpng, libjpeg, pango, glib, atk, zlib, libxml2, libtiff, dirent (for making msvc cooperate), freetype, fontconfig - and I'm not even done yet.
If you're not nuts (like me) and just want the latest of all of gtk+ compiled on windows ready to go, Glade for Windows will install all the binaries, libs, headers, and everything else you need to get things compiling. I didn't have to start from scratch - other people have worked on this before but either given up or moved on. I suppose it's hard to keep something updated when new versions of code pop up all the time.
In any case, after I get gtk+ and it's myriad dependencies working, I'll be tackling php-gtk2 defs and overrides to get it working with 2.10 (yes yes, I know andrei wants to finish 2.6 first...but since my C skills are mediocre at best I'm not too good at finishing the hard stuff...we'll see)
You can take a look at the latest compiles and work I'm doing at http://callicore.net/php-gtk2