Changes between Version 80 and Version 81 of CompileClient


Ignore:
Timestamp:
Jan 31, 2015, 3:40:39 PM (10 years ago)
Author:
Bluefin Tuna
Comment:

Rearranged the part for Linux/Unix? and made things hopefully clearer

Legend:

Unmodified
Added
Removed
Modified
  • CompileClient

    v80 v81  
    99 * The BOINC [userw:The_BOINC_screensaver screensaver] (Windows and Mac only)
    1010
    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
     13First, download and install the [SoftwarePrereqsUnix prerequisites], then [SourceCodeGit download the current source].
     14
     15You 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
     19Consider reading the output of {{{./configure --help}}}.
     20
     21=== Local use ===
     22
     23If 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
     31Special 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
     33If 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
     35If {{{./configure}}} ended with success, you can now start the actual build process:
     36
     37{{{
    1838make
     39}}}
     40
     41Once this has succeeded, you may either install the result to the directory given previously to {{{./configure}}} by issuing
     42
     43{{{
     44make install
     45}}}
     46
     47or you may want to create a distribution package:
     48
     49{{{
    1950cd packages/generic/sea/
    2051make
    2152}}}
    2253
    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
     54Note that making the distribution package fails if not everything has been built:
     55
     56{{{
     57cp: cannot stat ‘../../../stage/FOO/bin/boincmgr’: No such file or directory
     58cp: cannot stat ‘../../../stage/FOO/bin/boincscr’: No such file or directory
     59}}}
     60
     61Fake the presence of those files:
     62
     63{{{
     64touch ../../../stage/FOO/bin/boincmgr
     65touch ../../../stage/FOO/bin/boincscr
     66}}}
     67
     68The 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
     72If 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
    2673is recommended to build the client software using a virtual machine (e.g. running under Microsoft Virtual PC, download the [VmCompatibility Compatibility virtual machine image]).
    27 In this case you should build using:
     74
     75In this case you should build using the option {{{--enable-client-release}}}
     76
    2877{{{
    2978./_autosetup
     
    3281make
    3382}}}
     83
    3484See [BuildSystem details of the build system].
    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}}}
    5285
    5386== Windows ==