Instructions to build Bacula with Microsoft Visual C++ 2005 Express Edition (free version). --- (Note: for the moment VSS support has been disabled, and this is not the official way to build the released FD. See README.win32 for the "official" instructions.) What you need to download: - Visual C++ 2005 Express Edition (2MB + 66MB) http://msdn.microsoft.com/vstudio/express/visualc/download/ NOTE: You may want to download the whole CD for offline usage instead of the web installer, as Microsoft will start to charge for VC++ one year after the product launch (launch was in November 2005, see VC++ FAQ). - Windows® Server 2003 SP1 Platform SDK Full Download (385MB) http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en NOTE: choose "Full Download" version on the bottom of that page. - wxWidgets for Win32 (17MB) (exe file) http://www.wxwidgets.org/dl_msw2.htm#stable - gettext packages (2MB) + http://mirror.switch.ch/ftp/mirror/gnu/gettext/gettext-runtime-0.13.1.bin.woe32.zip + http://mirror.switch.ch/ftp/mirror/gnu/gettext/gettext-tools-0.13.1.bin.woe32.zip + http://mirror.switch.ch/ftp/mirror/gnu/libiconv/libiconv-1.9.1.bin.woe32.zip - Bacula source files: + deppkgs-win32 from SF download page (extracted in /deppkgs-win32) + latest source from the CVS (maybe you want to use mingw-msys to checkout them) (in /bacula) Installation instructions: - Visual C++ Express Edition Beta 2: + Run vcsetup.exe. + When asked for Installation Options, only check "Graphical IDE" (MSDN Library is NOT needed). + Remember where you install it (e.g. E:\Microsoft Visual Studio 8\) - Windows® Server 2003 SP1 Platform SDK Full Download + Run psdk-full.exe, type the directory where you downloaded the cab files. + In a command prompt, run "PSDK-full.bat " (e.g. "PSDK-full.bat E:\temp") + Run \setup.exe + When asked for the installation directory, choose \VC\PlatformSDK (e.g. E:\Microsoft Visual Studio 8\VC\PlatformSDK\) + When asked for components, you can safely remove documentation, samples, and all 64-bit tools and libs if you want to save disk space. - gettext packages + extract them all in /deppkgs-win32/gettext - wxWidgets for Win32 + delete /deppkgs-win32/wx directory + run wxMSW-2.6.1-Setup.exe, and install it to /deppkgs-win32/wx Build instructions: - deppkgs: + Start VC++ 2005 command prompt (in the start menu) + run "\VC\PlatformSDK\SetEnv.Cmd" + cd /deppkgs-win32/zlib + run "nmake -f win32\Makefile.msc" (don't worry about the warnings) + cd /deppkgs-win32/pthreads + run "nmake clean VCE" (again, don't worry about the warnings) + (note pthreadVCE.dll has been created in this directory) - wxWidgets: + Open \depkgs-win32\wx\build\msw\wx.dsw in VC++ 2005 + Click on "Yes to all" + In the solution explorer, open core/Setup Headers/setup.h and add, at the end of the file (before the last #endif): #if (_MSC_VER >= 1400) // VC8+ #pragma warning(disable : 4996) // Either disable all deprecation warnings, // #define _CRT_SECURE_NO_DEPRECATE // Or just turn off warnings about the newly deprecated CRT functions. #endif // VC8+ This is not absolutely necessary, but this will remove annoying warnings. + Launch Build->Configuration Manager, then select "Unicode Release" and close this window. Then run Build->Build Solution. + If the build of wx-console fails, try removing the comments around #ifndef (line 145) and #endif (line 147) in file: /bacula/src/win32/compat/compat.h + Repeat the operation for the "Unicode Debug" configuration if needed. + Open /bacula/src/win32/bacula.sln + Launch Build->Configuration Manager, then select your configuration. + Then run Build->Build Solution (this will build wx-console, bconsole and bacula-fd). Deploy instructions - Bacula: + To deploy bacula on Windows clients, create a setup using NSIS (Nullsoft Scriptable Install System). http://nsis.sourceforge.net/Download + Modify the default \bacula\src\win32\winbacula.nsi.in script to include your own customizations. These are the required modifications: * Remove all references to msvcr71.dll, as this is a pre VC++ 2005 library. * VC++ 2005 compiled binaries require a new way of deploying DLLs: WinSxS. More info: http://blogs.msdn.com/nikolad/archive/2005/03/18/398720.aspx Collect the following 4 files from c:\WINDOWS\WinSxS and copy them into the directory where winbacula.nsi resides. Also add them to winbacula.nsi where msvcr71.dll was previously. File msvcm80.dll File msvcp80.dll File msvcr80.dll File Microsoft.VC80.CRT.manifest Modify Microsoft.VC80.CRT.manifest to match the version number mentioned in bacula-fd.exe.intermediate.manifest that is in /bacula/src/win32/baculafd/Release.