Changes between Version 85 and Version 86 of CompileClient


Ignore:
Timestamp:
Dec 2, 2015, 11:02:24 AM (9 years ago)
Author:
romw
Comment:

Simplify Instructions

Legend:

Unmodified
Added
Removed
Modified
  • CompileClient

    v85 v86  
    99 * The BOINC [userw:The_BOINC_screensaver screensaver] (Windows and Mac only)
    1010
    11 == Unix and Linux ==
     11== Linux ==
    1212
    13 It is recommended to create a dedicated user for BOINC processing, e.g. {{{boinc}}} and perform the operations below in this user's home directory! Details depend on the system, on Linux one would do
    14 
    15 {{{
    16 useradd boinc
    17 su - boinc
    18 }}}
    19 
    20 ...to create a new user called ''boinc'' who cannot log in by default (because he has no password), then switch to that user.
    21 
    22 First, download and install the [SoftwarePrereqsUnix prerequisites], then [SourceCodeGit download the current source].
    23 
    24 You should then have a directory called maybe "{{{boinc-client_release-7.4-7.4.41}}}".
    25 
    26 {{{cd}}} to that directory and issue the command
    27 
     13If you want to build the client software for local use on your machine only, it is enough to simply build it using:
    2814{{{
    2915./_autosetup
    30 }}}
    31 
    32 If this generates errors, check the [SoftwarePrereqsUnix prerequisites] again. On success, consider reading the output of
    33 
    34 {{{
    35 ./configure --help
    36 }}}
    37 
    38 === Local use ===
    39 
    40 If you want to build the client software for local use on your machine only, configure the build process using:
    41 
    42 {{{
    43 WHERE_BOINC_WILL_GO=/where/boinc/will/go
    44 ./configure --prefix=$WHERE_BOINC_WILL_GO --disable-server --disable-manager --disable-fcgi --enable-optimize
    45 }}}
    46 
    47   * {{{WHERE_BOINC_WILL_GO}}} is the name of the target directory. Often chosen as {{{/usr/local/boinc}}}, but consider using {{{~boinc/boinc}}} if you have a dedicated boinc user.
    48   * According to {{{./configure --help}}}, the command {{{./configure --enable-pkg-client}}} should mean 'build a client package' but doing it that way will result in the error "{{{cannot find the library `../lib/libboinc_crypt.la'}}}".
    49   * 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}}}.
    50   * 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}}}
    51 
    52 If {{{./configure}}} ended with success, you can now start the actual build process:
    53 
    54 {{{
     16./configure --disable-server --enable-client CXXFLAGS="-O3 "
    5517make
    56 }}}
    57 
    58 Once this has succeeded, you may either install the result to the directory given previously to {{{./configure}}} by issuing
    59 
    60 {{{
    61 make install
    62 }}}
    63 
    64 This will probably fail because.
    65 
    66 {{{
    67 /bin/install: cannot create regular file ‘/etc/init.d/boinc-client’: Permission denied
    68 }}}
    69 
    70 The installer tries to put an "init file" into {{{/etc/init.d/}}} to start boinc client at boot time. This is not a good idea because
    71 
    72    1 This works only if you are currently root, and shouldn't be root when building. On the other hand, if you install boinc to {{{/usr/local/boinc}}}, you will have to issue {{{make install}}} as root anyway.
    73    2 Your system may well be running {{{systemd}}} and no longer use System V-style init files.
    74 
    75 Solution: Remove the make target {{{install-exec-hook}}} from the make target {{{install-exec-am}}} by editing {{{client/scripts/Makefile}}}
    76 
    77 {{{
    78 install-exec-am:
    79         @$(NORMAL_INSTALL)
    80         $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
    81 }}}
    82 
    83 to
    84 
    85 {{{
    86 install-exec-am:
    87         @$(NORMAL_INSTALL)
    88 #        $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
    89 }}}
    90 
    91 === Distribution package ===
    92 
    93 Alternatively, you may want to create a distribution package:
    94 
    95 {{{
    9618cd packages/generic/sea/
    9719make
    9820}}}
    9921
    100 Note that making the distribution package fails if not everything has been built:
     22The executables are located under the folder BOINC.
    10123
    102 {{{
    103 cp: cannot stat ‘../../../stage/FOO/bin/boincmgr’: No such file or directory
    104 cp: cannot stat ‘../../../stage/FOO/bin/boincscr’: No such file or directory
    105 }}}
    106 
    107 Fake the presence of those files:
    108 
    109 {{{
    110 touch ../../../stage/FOO/bin/boincmgr
    111 touch ../../../stage/FOO/bin/boincscr
    112 }}}
    113 
    114 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}}}
    115 
    116 === Portable binaries ===
    117 
    118 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
    119 is recommended to build the client software using a virtual machine (e.g. running under Microsoft Virtual PC, download the [VmCompatibility Compatibility virtual machine image]).
    120 
    121 In this case you should build using the option {{{--enable-client-release}}}
    122 
     24If 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:
    12325{{{
    12426./_autosetup
     
    12830}}}
    12931
    130 See [BuildSystem details of the build system].
     32See details of the build system.
     33
     34The 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.
     35
     36=== Other Unix ===
     37
     38 * Download and install prerequisites
     39 * Download current source code
     40 * Configure (with --disable_server) and make
     41
     42The 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:
     43{{{
     44./configure LDFLAGS=-L/usr/local/lib
     45}}}
     46
     47Here 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):
     48
     49{{{freeglut3-dev libsm-dev libice-dev libxmu-dev libxi-dev libx11-dev libjpeg62-dev }}}
    13150
    13251== Windows ==