jabberd2 for win32 guide ======================== This guide describes briefly how to build jabberd2 on Windows platforms. NOTE: Windows platforms prior to Windows 2000 are NOT supported, so this won't work on Windows 95/98/ME/NT. Building jabberd2 win32 with Visual Studio 2008 (SP1) ----------------------------------------------------- Starting from revision #229 complete win32 support with Visual Studio 2005 project files is present and maintained in the repository "win32" folder. Starting from revision #751 project files require Visual Studio 2008 (SP1). All libraries shall be installed locally and added to VC Include files and Library files paths using: Tools->Options->Project and Solutions->VC++ Directories. All libraries' DLL files shall be copied to win32/bin folder and win32/bin/sasl folder for SASL plugins respectively. Prerequisites: 1. http://alpha.gnu.org/gnu/libidn/ libidn source build using win32/libidn.sln, provides: libidn.lib 2. http://alpha.gnu.org/gnu/gsasl/ libgsasl source build using win32/libgsasl.sln, provides: libgsasl.lib 3. http://www.openssl.org/source/ OpenSSL source build, provides: libeay32.lib ssleay32.lib 4. http://sourceforge.net/projects/expat/ Expat XML Parser source build using expat.dsw, provides: libexpat.lib 5. http://www.corpit.ru/mjt/udns.html udns source build, provides: udns.lib, since there are no VC project files provided along with sources, please use patch files provided at: http://www.nanoant.com/projects/jabberd2-win32#download 6. http://www.zlib.net/ zlib source build, provides: zlib1.lib, convert & use VC project files at: projects/visualc6, link to Win32_DLL_ASM_Release. If you encounter MASM error: .\inffas32.asm(647) : error A2070: invalid instruction operands Add a "dword ptr" type qualifier before "[esp]" as described here: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=166511 7. http://dev.mysql.com/downloads/mysql/5.0.html MySQL (auth & storage module) binary, provides: libmysql.lib 8. http://www.sqlite.org/download.html SQLite (auth & storage module) source build, provides: sqlite3.lib. Since there are no libraries for VC except DLLs you shall make one using sqlite-amalgamation-3.x.zip from SQLite downloads. sqlite3 command present in PATH, needed for initial database. 9. http://tortoisesvn.tigris.org/ SubWCRev command present in PATH to generate version.h and version.wxi. Comes with TortoiseSVN bin folder, added to PATH by TortoiseSVN installer. 10. http://wix.sourceforge.net/releases/ WiX 3.0.4401.0 or newer for building MSI jabberd2 setup inside VS2008 IDE 11. http://www.activestate.com/store/activeperl/download/ ActivePerl (or any Perl distribution) perl command present in PATH (optional for generation of default configuration XML files) After all prerequisite libraries are configured for use within VC open win32/jabberd2.sln and build all projects. You should have now fresh & ready Windows build of jabberd2 at win32/bin folder! Building jabberd2 win32 with MinGW ---------------------------------- NOTE: MinGW is NOT supported by the jabberd2 project team. If you have problems, you're welcome to post to jabberd@jabberstudio.org, but thats all. If you file a bug that can't be reproduced under Unix or MSVC, then the bug will be assumed not to exist. If anyone would like to step up to maintain this port properly, please contact us. You'll need MinGW and MSys installed to get this going, available here: http://www.mingw.org/ At the time of writing, the latest MinGW is 3.1.0-1. If you get this version, you'll need to also get w32api 2.5 (to get the aforementioned DNS resolution APIs). Later versions of MinGW should include these. Once all this kit is up and running, its business as usual: % ./configure % make % make install Note that you'll still need the various external packages as stated at Visual Studio 2008 section (eg MySQL dev packages) available in order to build a working server. Getting these up and running under MinGW is outside the scope of this short guide. Thanks ------ I'd like to thank Robert Norris for former win32 guide & support. Also huge thanks go out to Peter Hinz for the original port that was cannibalised pretty seriously by my predecessor that wouldn't have had a chance if he hadn't seen his code. Also I'm sending thanks to Tomasz Sterna (current project maintainer) for letting me in with my win32 modifications and support. -- Adam Strzelecki