We took the native MS compile approach when we ported InfiniDB from Linux to Windows. We chose to use boost as much as possible to provide a portability layer. When we could not use boost we used the preprocessor and wrote platform-specific code. Surprisingly, there was not that much to do. One thing we did was to write a portability library (called 'libwinport.lib') that contains Windows versions of Linux functions that seemed easier to port rather than #ifdef around. There's not that many functions in it (one of them is poll()).
I can't tell you that this was the best approach, but it does seem to do what we needed. You can see our port library at http://bazaar.launchpad.net/~infinidb/infinidb/trunk/files/head:/utils/w inport/ -----Original Message----- From: [email protected] [mailto:[email protected] ] On Behalf Of Monty Taylor Sent: Saturday, July 17, 2010 2:30 PM To: Jobin Augustine Cc: drizzle-discuss Discuss Subject: Re: [Drizzle-discuss] Drizzle on MS windows On 07/17/2010 02:03 PM, Jobin Augustine wrote: > Thank you Monty, > > Thats a great news. > Just curious, why this changes not yet merged. > > already have a setup of MinGW on windows. > I shall work on that in the coming week. Cause it doens't fully work yet. And I'm lazy. And a bad person. But mostly because of the doesn't work yet thing. > > > > I had some work done in the libdrizzle code which had it almost > compiling natively with mingw. The only part that didn't work was the > poll() call, which doesn't exist on Windows. I think a single ifdef > around poll() to use WSAPoll instead on windows isn't terrible. Other > than that, there were a few places where we need to #include <windows.h> > > I'm not worried about linking cygwin.dll. I see cygwin as mainly a > source-target for people already using cygwin... not really as a way to > ship a binary version of libdrizzle. > > But check out lp:~mordred/libdrizzle/mingwport > > It doesn't work yet, but gives you an idea of where I was going. You can > either do it in a mingw setup on windows, or you can cross-compile on > linux (if you have mingw and mingw-pthreads installed) by doing: > > ./configure --build=x86_64-unknown-linux-gnu --host=i586-mingw32msvc > > Monty > >> > _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

