11 | | |
12 | | == Linux == |
13 | | |
14 | | If you want to build the client software for local use on your machine only, it is enough to simply build it using |
15 | | {{{ |
16 | | ./_autosetup |
17 | | ./configure --disable-server --enable-client CXXFLAGS="-O3 " |
| 11 | == Unix and Linux == |
| 12 | |
| 13 | First, download and install the [SoftwarePrereqsUnix prerequisites], then [SourceCodeGit download the current source]. |
| 14 | |
| 15 | You should then have a directory called maybe {{{boinc-client_release-7.4-7.4.41}}}. |
| 16 | |
| 17 | {{{cd}}} to that directory and issue the command {{{./_autosetup}}}. |
| 18 | |
| 19 | Consider reading the output of {{{./configure --help}}}. |
| 20 | |
| 21 | === Local use === |
| 22 | |
| 23 | If you want to build the client software for local use on your machine only, configure the build process using: |
| 24 | |
| 25 | {{{ |
| 26 | ./configure --prefix=/where/boinc/will/go --disable-server --disable-manager --disable-fcgi --enable-optimize |
| 27 | }}} |
| 28 | |
| 29 | (According to {{{./configure --help}}}, the command {{{./configure --enable-pkg-client}}} should mean 'build a client package' but doing it that way results in error {{{cannot find the library `../lib/libboinc_crypt.la'}}}.) |
| 30 | |
| 31 | Special flags can be passed to the compiler: for example one might add {{{CXXFLAGS="-O3"}}} to the {{{./configure}}} options. Indications whether this is actually useful are hard to come by though. With {{{--enable-optimize}}}, the CXXFLAGS are set to {{{CXXFLAGS = -g -O2 -Wall -ffast-math -O3}}} in the {{{Makefile}}}. |
| 32 | |
| 33 | If you have old versions of libraries (curl, openssl etc.) in {{{/usr/lib}}}, and newer versions somewhere else (for example, {{{/usr/local/lib}}}) you may need to tell the linker where to find the newer versions by adding the LDFLAGS options, as in {{{LDFLAGS=-L/usr/local/lib}}} |
| 34 | |
| 35 | If {{{./configure}}} ended with success, you can now start the actual build process: |
| 36 | |
| 37 | {{{ |
23 | | The executables are located under the folder BOINC. |
24 | | |
25 | | If instead you intend to build portable binaries of the client software that should run on a wide variety of GNU/Linux platforms, it |
| 54 | Note that making the distribution package fails if not everything has been built: |
| 55 | |
| 56 | {{{ |
| 57 | cp: cannot stat ‘../../../stage/FOO/bin/boincmgr’: No such file or directory |
| 58 | cp: cannot stat ‘../../../stage/FOO/bin/boincscr’: No such file or directory |
| 59 | }}} |
| 60 | |
| 61 | Fake the presence of those files: |
| 62 | |
| 63 | {{{ |
| 64 | touch ../../../stage/FOO/bin/boincmgr |
| 65 | touch ../../../stage/FOO/bin/boincscr |
| 66 | }}} |
| 67 | |
| 68 | The results can now be found in the {{{sea}}} directory: located under the folder BOINC and there is also a {{{sea.tar}}} file as well as a self-extracting archive e.g. {{{boinc_7.4.41_x86_64-pc-linux-gnu.sh}}} |
| 69 | |
| 70 | === Portable binaries === |
| 71 | |
| 72 | If instead you intend to build hopefully portable statically linked binaries of the client software that should run on a wide variety of GNU/Linux platforms, it |
35 | | |
36 | | 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. |
37 | | |
38 | | == Other Unix == |
39 | | |
40 | | * Download and install [SoftwarePrereqsUnix prerequisites] |
41 | | * [SourceCodeGit Download current source code] |
42 | | * [BuildSystem Configure (with --disable_server) and make] |
43 | | |
44 | | 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: |
45 | | {{{ |
46 | | ./configure LDFLAGS=-L/usr/local/lib |
47 | | }}} |
48 | | |
49 | | 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): |
50 | | |
51 | | {{{freeglut3-dev libsm-dev libice-dev libxmu-dev libxi-dev libx11-dev libjpeg62-dev}}} |