Compiling the core client

From BOINC
Jump to: navigation, search
Broom icon.svg

This page has been moved from Trac directly, and hasn't been cleaned up yet.

Please help improve this page by converting it to MediaWiki formatting, and fixing the links.


This document describes how to build BOINC from the source code. To learn how to simply install BOINC on your system, see Installing BOINC


The BOINC client software includes:

Linux/x86

If you want to build the client software for local use on your machine only, it is enough to simply build it using

./_autosetup
./configure --disable-server --enable-client CXXFLAGS="-O3 -funroll-loops -fforce-addr -ffast-math"
make

If instead you intend to build portable binaries of the client software that should run on a wide variety of GNU/Linux platforms, it is recommended to build the client software using a virtual machine (e.g. running under Microsoft Virtual PC, download the Compatibility virtual machine image). In this case you should build using:

./_autosetup
./configure --disable-server --enable-client-release --build=i686-pc-linux-gnu \
    CXXFLAGS="-O3 -funroll-loops -fforce-addr -ffast-math"
make

See details of the build system.

Other Unix

  • Download and install prerequisites
  • Download current source code
  • Configure (with --disable_server) and make

The result (in the sea/ directory) will be a self-extracting archive (boinc_x.y.z_PLATFORM.sh) containing the BOINC client software. If you have old versions of libraries (curl, openssl etc.) in /usr/lib, and newer versions somewhere else (like /usr/local/lib) you must tell the linker where to find the newer versions:

./configure LDFLAGS=-L/usr/local/lib

Here is the list of packages that are needed to compile the BOINC graphics libs on Debian (the same packages should also be available on Ubuntu):

freeglut3-dev libsm-dev libice-dev libxmu-dev libxi-dev libx11-dev libjpeg62-dev

The result (in the sea/ directory) will be a self-extracting archive (boinc_x.y.z_i686-pc-linux-gnu.sh) containing the BOINC client software.

Windows

Use Microsoft Visual Studio 2005. Or download and install Visual C++ 2005 Express Edition (part of Visual Studio 8 Express). After it downloaded and "installed", go to your local \Visual Studio 8\Microsoft Visual C++ 2005 Express Edition - ENU\ directory and click setup.exe, which will install VC++ 2005 Express Edition in earnest.

Do not forget to update to Visual Studio 2005 Service Pack 1.

NOTE: When using Visual C++ 2005 Express Edition, you will also need to download and install the Windows Platform SDK. See this article for further details.


Build Target Build Platform wxWidget Version Environment Variable
Release Win32 2.8.x WXWIN
Release x64 2.8.x WXWINX64
Debug Win32 2.8.x WXWIN
Debug x64 2.8.x WXWINX64
ReleaseSigned Win32 2.6.x WXWINPROD
ReleaseSigned x64 2.6.x WXWINPRODX64


  • In Windows, Start->(Settings)->Control Panel->System, select Advanced; click Environment Variables. Under 'User variables' click New. Create a variable named 'wxwin' with value 'c:\wx' (or wherever you installed it). Then restart Visual Studio.

Example Environment Variables:

WXWIN=C:\Src\SDKs\wx28
WXWINPROD=C:\Src\SDKs\wx26
WXWINPRODX64=C:\Src\SDKs\wx26x64
WXWINX64=C:\Src\SDKs\wx28x64

  • Build wxWidgets. See Compiling wxWidgets for details. You'll need to compile both the Debug and Release targets.
  • When done, go File->Close Solution.
  • Then go File->Open Solution-><BOINCSRCDIR/>\win_build\boinc.sln and press Open.
  • Set up Visual Studio to use the correct platform. From the drop-down menu choose either Win32 (for 32 bit platforms) or x64 (for 64 bit platforms) and choose to make it a Release/Debug version.
  • For the latest versions of Visual C++ (e.g. Visual C++ 2008 Express Edition) it may be necessary to include preprocessor macros to direct the compiler to build for the correct Windows version (this was apparently introduced for Windows Vista). E.g. in Project -> <project_name> Properties, I needed to add these entries to Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor Definitions: _WIN32_WINNT=0x0501 and NTDDI_VERSION=0x05010200 -- see sdkddkver.h in the SDK include directory for macro values.
  • Additional linker dependencies for Visual C++ Express
    • boinc_dll
      • advapi32.lib
      • user32.lib
    • boinc
      • advapi32.lib
      • gdi32.lib
      • user32.lib
    • boincmgr
      • oleaut32.lib
  • Go to the Build menu, Build Solution.

All files will be built to <BOINCSRCDIR/>\win_build\Build\Win32\Release (or Build/x64/Release for 64 bit versions). Versions compiled with Visual C++ 2005 Express use the optimizing compiler. Benchmarks are the same as on versions released by Berkeley. The above steps will always build a development version, if you want to change this, edit <BOINCSCRDIR/>\version.h

You can easily ignore all of the warnings that you get when building. Most of them are for the eyes of the developers.

TODO: instructions for creating an installer with Installshield X.

Mac OS X

Instructions for building the BOINC client on Mac OS X are on a separate page.