The template uses CRLF everywhere, so we should generate the same to avoid mixed line endings.
On UNIX '\\' is a valid file name character. In this case we have to replace '\\' for Path.GetFileNameWithoutExtension to work as expected.
As-is, winsetup.bat replaces config.h with winconfig.h, which is needed for the MSVC compilation - but breaks all further use of cygwin's make (e.g. to build the class library, or run "make install"). This patch introduces a new cygconfig.h as a backup prior to squashing config.h (if it exists, so the runtime can still be built without cygwin ever being used), and makes winconfig.h use it on non-MSVC compilers (i.e. cygwin)
These configurations are needed to build a Debug_SGen version of mono.vcxproj, which is needed to build mono-sgen.exe
MonoPosixHelper fails to build in my testing, due to config.h bailing the build out if it doesn't think the build platform is XP SP2 or higher. Adding this define forces that minimum Windows version, allowing mono.sln to build fully.
…ds too. Update project files with newly added/removed sources.
…4005 (macro redefinition). The former occurs becase we mark exported function declarations using MONO_API, but not the definitions. The latter occurs because we define _WINSOCKAPI_.
…lation problems when windows.h is included before winsock2.h: http://stackoverflow.com/questions/1372480/c-redefinition-header-files.