Just a note:
If platform portability is important I would advise switching to a make system like cmake(cross-platform make).
Yes, it wont help you with having to #ifdef out the stuff, but it allows most common formats of project files to be generated from the same sources: VS2008, VS2010, codeblocks, unix style makefiles, xcode projects for mac...
One of the biggest issues I've had with my own projects when not using cmake is that you have a project file for VS(possibly multiple of them, for 2003, 2008, 2010), a codeblocks one, a makefile, all of which needs to be updated if even a single source file needs to be added.
It also has some other nice features, like ability to find dependancies in most common directories on all platforms, optional compilation, filling in configuration h files, ability to create unit test and install projects.http://www.cmake.org/cmake/help/cmake_tutorial.html
Thats a quick tutorial, and an introduction to some of what it does.
Anyway, great work. Hope to see this continue!
Personally I wouldn't worry about ppl breaking linux on source control occasionally, it will happen. Just need to mark 'releases' that ppl can update to when they want to compile from source. Personally I think that having cross-platform in the official repo is the best way. Just note that windows is the primary supported platform.
As for the windows main function? I havn't looked at the code, but do you mean WinMain kinda stuff? If so I would avoid it like the plague. You're not working with windows GUIs, and libtcod doesn't need it. main(argc, argv) is portable and works well.
Well, this is better than double(triple?) posting.
If cmake looks good, I can help to port it over. Dont have TOO much free time lately, but this seems a project thats worth some love.