Which components you need depends on what you're doing: On UNIX systems, the entire BOINC software can be built by typing
./_autosetup
./configure [see options below]
make
make install  [optional: installs libraries and header files useful for building apps]
in the top directory.

Configuration

Usage:

./configure [OPTION]... [VAR=VALUE]...
You 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
./configure CXXFLAGS=\"-Wall -W -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \"

Defaults for the options are specified in brackets. "; list_start(); list_bar("Configuration"); list_item("-h, --help", "display this help and exit" ); list_bar("Installation directories"); list_item("--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=$HOME'. For better control, use the options below." ); list_bar("Optional Features"); list_item("--disable-FEATURE", "do not include FEATURE (same as --enable-FEATURE=no)" ); list_item("--enable-FEATURE[=ARG]", "include FEATURE [ARG=yes]" ); list_item("--enable-debug", "enable tracing and debugging flags for all components" ); list_item("--disable-server", "disable building the server component" ); list_item("--disable-client", "disable building the client component Default: --enable-server --enable-client: builds both server and client.

If configure can't find WxWidgets it will build the core client but not the Manager. If you want to build only the core client, run configure with --with-wxdir=junk. " ); list_item("--enable-maintainer-mode", "enable make rules and dependencies not useful (and sometimes confusing) to the casual installer" ); list_item("--enable-shared[=PKGS]", "build shared libraries [default=yes]" ); list_item("--enable-static[=PKGS]", "build static libraries [default=yes]" ); list_item("--disable-static-linkage", "disable static linking of certain libraries" ); list_item("--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)" ); list_bar("Optional Packages"); list_item("--with-PACKAGE[=ARG]", "use PACKAGE [ARG=yes]" ); list_item("--without-PACKAGE", "do not use PACKAGE (same as --with-PACKAGE=no)" ); list_item("--with-x", "use the X Window System" ); list_item("--with-apple-opengl-framework", "use Apple OpenGL framework (Mac OS X only)" ); list_item("--with-wxdir=PATH", "Use uninstalled version of wxWindows in PATH" ); list_item("--with-wx-config=CONFIG", "wx-config script to use (optional)" ); list_bar("Environment variables"); list_item("CC", "C compiler command" ); list_item("CFLAGS", "C compiler flags" ); list_item("LDFLAGS", "linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir>" ); list_item("CPPFLAGS", "C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir>" ); list_item("CXX", "C++ compiler command" ); list_item("CXXFLAGS", "C++ compiler flags. " ); list_item("CPP", "C preprocessor" ); list_item("CXXCPP", "C++ preprocessor" ); list_item("F77", "Fortran 77 compiler command" ); list_item("FFLAGS", "Fortran 77 compiler flags" ); list_item("MYSQL_CONFIG", "mysql_config program" ); list_end(); echo "

Source layout

The top-level Makefile.am contains the SUBDIRS= line which sets up directory recursion, and the rules for creating source distributions.

Each subdirectory's Makefile.am contains the rules for making the binaries and libraries in that directory and any extra files to distribute.

Usually you will want to run make from the top level (the directory containing the file configure), but sometimes it is useful to run make and make check in certain subdirectories (e.g. client/).

Adding new directories

If you create a new directory with another Makefile.am, you should

Version number

To set the BOINC client version:
  set-version 7.17.56
in the BOINC top-level source directory. This updates the AC_INIT line in configure.ac and regenerates files that use the version numbers (config.h, py/version.py, test/version.inc, client/win/win_config.h, Makefiles)

Archival/source distribution

To make source distributions:
  gmake dist
"; page_tail(); ?>