Changes between Version 17 and Version 18 of BuildSystem


Ignore:
Timestamp:
Feb 8, 2014, 8:37:15 AM (11 years ago)
Author:
Bluefin Tuna
Comment:

Added a few lines and removed out of date "configure --help" text which can be obtained via "configure --help" of course.

Legend:

Unmodified
Added
Removed
Modified
  • BuildSystem

    v17 v18  
    99    * '''Server''': the scheduler, file upload handler, daemons, and tools.
    1010
    11 On UNIX systems, the BOINC software can be built by typing
     11== Compilation pipeline ==
     12
     13On Unix systems, the BOINC software can be built by:
     14
     15    * Making sure a number of packages exist on your system (in particular, a missing g++ will mean you get confronted with mysterious error messages later on). In Linux using 'yum', run this as 'root':
     16
     17{{{
     18yum install make autoconf automake libtool libcurl-devel openssl-devel gcc-c++
     19}}}
     20
     21    * After that, 'cd' to the directory into which you cloned the BOINC Git repository (probably 'boinc_repo') and run:
    1222
    1323{{{
    1424./_autosetup
     25}}}
     26
     27    * This has created the 'configure' script. Execute that script (passing it a _number of options_) using
     28
     29{{{
    1530./configure [see options below]
     31}}}
     32
     33    * This has created the 'Makefile'. Run it using
     34
     35{{{
    1636make
    1737}}}
    1838
    19 in the top directory.
     39== Use cases ==
    2040
    21     * If you're creating a project, you need to build the server and miscellaneous software (you '''don't''' need to build the client software; participants can get that from the BOINC web site). Use
     41    * If you are '''creating a project''', you need to build the server and miscellaneous software (you '''don't''' need to build the client software; participants can get that from the BOINC web site). Use
    2242
    2343{{{
     
    2545}}}
    2646
    27     * If you're porting the BOINC client software to a new platform, you need the client and miscellaneous components. Use
     47    * If you are ''porting the BOINC client software to a new platform''', you need the client and miscellaneous components. Use
    2848
    2949{{{
     
    3151}}}
    3252
    33     * If you're developing or porting a BOINC application, you need only the miscellaneous component. Use
     53    * If you are '''developing or porting a BOINC application''', you need only the miscellaneous component. Use
    3454
    3555{{{
    3656./configure --disable-server --disable-client --disable-manager
     57}}}
     58
     59    * If you are '''compiling the client''', use
     60
     61{{{
     62./configure --disable-server --disable-manager
    3763}}}
    3864
     
    4571}}}
    4672
     73Run
     74
     75{{{
     76./configure --help
     77}}}
     78
     79for a complete listing of available options.
     80
    4781You can use environment variables to override the choices made by `configure` or to help it to find libraries and programs with nonstandard names/locations. To assign environment variables (e.g., CC, CFLAGS...), specify them as `VAR=VALUE`. Example: to compile BOINC with strict compiler warnings, use
    4882
    4983{{{
    50 ./configure CXXFLAGS="-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common "
     84./configure CXXFLAGS="-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common"
    5185}}}
    5286
    53 Defaults for the options are specified in brackets.
     87In particular, you can set the installation directory like this for example:
    5488
    55 === Configuration ===
     89{{{
     90VERSION=7.2.9
     91./configure CXXFLAGS="-Wall -W -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common" --disable-server --disable-manager --prefix=${HOME}/boinc_${VERSION}
     92}}}
    5693
    57 ||'''-h, --help'''||display configuration options and exit||
    58 ||'''--with-boinc-platform=NAME'''||Override the BOINC [BoincPlatforms platform] name determined by autoconf. i.e. Use NAME as [BoincPlatforms platform] to compile into the client. Only necessary if configure does not recognize your platform correctly by default. You can check the platform after the configure step by looking at the value of the HOSTTYPE variable in config.h ||
    59 ||'''--with-boinc-alt-platform=NAME'''||Use this option to build an client that supports an alternate platform name.  For example, on a x86_64 linux system that supports both 64 bit and 32 bit executables, you might specify --with-boinc-platform=x86_64-pc-linux-gnu and --with-boinc-alt-platform=i686-pc-linux-gnu. ||
     94== Problems during compilation phase ==
    6095
    61 === Installation directories ===
     96Once you run `make`, a few problems may occur.
    6297
    63 ||'''--prefix=PREFIX'''||install architecture-independent files in PREFIX [`/usr/local`] By default, `make install` will install all the files in `/usr/local/bin`, `/usr/local/lib` etc. You can specify an installation prefix other than `/usr/local` using `--prefix`, for instance `--prefix=`. For better control, use the options below.||
     98Make breaks off with
    6499
    65 === Optional Features ===
     100{{{
     101error: wrong number of arguments
     102usage: git config [options]
     103}}}
    66104
    67 ||'''--disable-FEATURE'''||do not include FEATURE (same as --enable-FEATURE=no)||
    68 ||'''--enable-FEATURE[=ARG]'''||include FEATURE [ARG=yes]||
    69 ||'''--enable-debug'''||enable tracing and debugging flags for all components (alternatively, include -g in CFLAGS and CXXFLAGS)||
    70 ||'''--disable-server'''||disable building the server component||
    71 ||'''--disable-manager'''||disable building the manager component (Disabled automatically if configure can't find wxWidgets)||
    72 ||'''--disable-client'''||disable building the client component Default: --enable-server --enable-client --enable-manager: builds server, client and manager.||
    73 ||'''--enable-shared[=PKGS]'''||build shared libraries [default=yes]||
    74 ||'''--enable-static[=PKGS]'''||build static libraries [default=yes]||
    75 ||'''--disable-static-linkage'''||disable static linking of certain libraries||
    76 ||'''--enable-client-release'''||Try building a portable 'release-candidate' (currently implemented for Linux and Solaris only): this links libstd++ statically. You will probably need gcc-3.0 for this to produce a portable client-binary. It is therefore recommended to use CC=gcc-3.0 and CXX=g++-3.0 for this. (Default = no)||
    77 
    78 === Optional Packages ===
    79 
    80 ||'''--with-PACKAGE[=ARG]'''||use PACKAGE [ARG=yes]||
    81 ||'''--without-PACKAGE'''||do not use PACKAGE (same as --with-PACKAGE=no)||
    82 ||'''--with-x'''||use the X Window System||
    83 ||'''--with-apple-opengl-framework'''||use Apple OpenGL framework (Mac OS X only)||
    84 ||'''--with-wxdir=PATH'''||Use installed version of wxWidgets in PATH||
    85 ||'''--with-wx-config=CONFIG'''||wx-config script to use (optional)||
    86 
    87 === Environment variables ===
    88 
    89 ||'''CC'''||C compiler command||
    90 ||'''CFLAGS'''||C compiler flags||
    91 ||'''LDFLAGS'''||linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir>||
    92 ||'''CPPFLAGS'''||C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir>||
    93 ||'''CXX'''||C++ compiler command||
    94 ||'''CXXFLAGS'''||C++ compiler flags.||
    95 ||'''CPP'''||C preprocessor||
    96 ||'''CXXCPP'''||C++ preprocessor||
    97 ||'''F77'''||Fortran 77 compiler command||
    98 ||'''FFLAGS'''||Fortran 77 compiler flags||
    99 ||'''MYSQL_CONFIG'''||mysql_config program||
     105Solution: Edit "generate_svn_version.sh" to put quotes around an argument (see https://boinc.berkeley.edu/trac/ticket/1253)
    100106
    101107== Source layout ==