= Compiling BOINC client software = [[PageOutline(1-3)]] The BOINC client software includes: * The core client * The [userw:The_BOINC_Manager BOINC Manager] * [userw:Boinccmd_tool boinc_cmd] (!Unix/Linux only) * The BOINC [userw:The_BOINC_screensaver screensaver] (Windows and Mac only) == Linux == If you want to build the client software for use on hosts equivalent to yours, build it using: {{{ ./_autosetup ./configure --disable-server --enable-client CXXFLAGS="-O3 " make cd packages/generic/sea/ make }}} The executables are located under the folder BOINC. 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 Oracle VirtualBox, download the [VmCompatibility 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 [BuildSystem details of the build system]. 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. === Other Unix === * Download and install [SoftwarePrereqsUnix prerequisites] * [SourceCodeGit Download current source code] * [BuildSystem 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 may need to tell the linker where to find the newer versions, as in: {{{ ./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 }}} == Windows == === Visual Studio 2013 Community Edition Build Environment === Software Prerequisites: * Download and install [http://go.microsoft.com/fwlink/?LinkId=517284 Visual Studio 2013 Community Edition]. * If you get messages about your trial being expired, Microsoft tells to fix this by [[https://blogs.msdn.microsoft.com/visualstudio/2015/08/07/visual-studio-2015-faq/#CommunityEditionTrialExpiry | signing in with your Microsoft account]]. * Download the [SourceCodeGit BOINC source code]. * Download the [SourceCodeGit#Windowsbuilddependencies Visual Studio 2013 Dependency Store]. * All dependency stores can be found [http://boinc.berkeley.edu/gitweb/ here]. All the Visual Studio project files assume that the dependency store is a sibling of the BOINC source repo. An example directory layout would look like this: {{{ C:\Src | +--+ boinc | +--+ boinc_depends_win_vs2013 }}} Be economical with folder names. The length of the code sub-folder name ('boinc', in this case) must be no more than 13 characters. ==== Building via Visual Studio ==== Double-click on the boinc_vs2013.sln file in the win_build directory to launch Visual Studio 2013. From here you should be able to perform any build operation you want. ==== Building via the Command Line ==== Most everything developers will need to do during release management is handled by batch files. All these collections of batch files depend on the BOINC Build Environment for Windows. Launching the BOINC Build Environment for Windows: {{{ cd \src\boinc\win_build buildenv type release platform x64 }}} Buildenv accepts several different parameters to customize what you are going to be able to build. Command parameters are as follows: {{{ Initializing BOINC Build Environment for Windows Usage: buildenv.cmd TYPE PLATFORM [Optional Commands] Commands: DEVENVDIR: Which build environment executed this batch file. TYPE: Which build environment are you building executables for. Current Values: Release/Debug PLATFORM: Which platform are you building for. Current Values: x86/amd64/ia64 }}} You should get this output on success: {{{ Initializing BOINC Build Environment for Windows Software Platform Detected: Visual Studio 2013 }}} To build everything, execute 'build all' from the build environment: {{{ C:\Src\boinc>build all Building the World... Building BOINC: Success Building BOINC Manager: Success Building BOINC Command: Success Building BOINC Screen Saver: Success Building BOINC Screen Saver Controller: Success Building BOINC Service Controller: Success Building BOINC System Tray: Success }}} If you wish to run the compiled applications on a different computer, you may need to download and install the Visual C++ Redistributable Packages for Visual Studio 2013 from [https://www.microsoft.com/en-GB/download/details.aspx?id=40784 here]. == Mac OS X == Instructions for [MacBuild building the BOINC client on Mac OS X] are on a separate page.