7 | | * '''Miscellaneous''': the API and various shared code. |
8 | | * '''Client''': the core client and Manager. |
9 | | * '''Server''': the scheduler, file upload handler, daemons, and tools. |
10 | | |
11 | | On UNIX systems, the BOINC software can be built by typing |
| 7 | To build BOINC on Unix, first |
| 8 | [SoftwarePrereqsUnix install the software prerequisites] |
| 9 | and [SourceCodeGit get the BOINC source code]. |
| 10 | Then, in the source code directory, type |
47 | | 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 |
| 45 | You can use environment variables to override the choices made by `configure` |
| 46 | or to help it to find libraries and programs with nonstandard names/locations. |
| 47 | To assign environment variables (e.g., CC, CFLAGS...), specify them as `VAR=VALUE`. |
| 48 | Example: to compile BOINC with strict compiler warnings, use |
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. || |
| 58 | '''-h, --help''' :: display configuration options and exit |
| 59 | |
| 60 | '''-h, --help''' :: display configuration options and exit |
| 61 | '''--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 |
| 62 | '''--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. |
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)|| |
| 70 | '''--disable-FEATURE''' :: do not include FEATURE (same as --enable-FEATURE=no) |
| 71 | '''--enable-FEATURE[=ARG]''' :: include FEATURE [ARG=yes] |
| 72 | '''--enable-debug''' :: enable tracing and debugging flags for all components (alternatively, include -g in CFLAGS and CXXFLAGS) |
| 73 | '''--disable-server''' :: disable building the server component |
| 74 | '''--disable-manager''' :: disable building the manager component (Disabled automatically if configure can't find wxWidgets) |
| 75 | '''--disable-client''' :: disable building the client component. |
| 76 | Default: --enable-server --enable-client --enable-manager: builds server, client and manager. |
| 77 | '''--enable-shared[=PKGS]''' :: build shared libraries [default=yes] |
| 78 | '''--enable-static[=PKGS]''' :: build static libraries [default=yes] |
| 79 | '''--disable-static-linkage''' :: disable static linking of certain libraries |
| 80 | '''--enable-client-release''' :: Try building a portable 'release-candidate' (currently implemented for Linux and Solaris only): |
| 81 | this links libstd++ statically. |
| 82 | You will probably need gcc-3.0 for this to produce a portable client-binary. |
| 83 | It is therefore recommended to use CC=gcc-3.0 and CXX=g++-3.0 for this. (Default = no) |
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)|| |
| 87 | '''--with-PACKAGE[=ARG]''' :: use PACKAGE [ARG=yes] |
| 88 | '''--without-PACKAGE''' :: do not use PACKAGE (same as --with-PACKAGE=no) |
| 89 | '''--with-x''' :: use the X Window System |
| 90 | '''--with-apple-opengl-framework''' :: use Apple OpenGL framework (Mac OS X only) |
| 91 | '''--with-wxdir=PATH''' :: Use installed version of wxWidgets in PATH |
| 92 | '''--with-wx-config=CONFIG''' :: wx-config script to use (optional) |
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|| |
100 | | |
101 | | == Source layout == |
102 | | |
103 | | The top-level `Makefile.am` contains the `SUBDIRS=` line which sets up directory recursion, and the rules for creating source distributions. |
104 | | |
105 | | Each subdirectory's `Makefile.am` contains the rules for making the binaries and libraries in that directory and any extra files to distribute. |
106 | | |
107 | | 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/`). |
| 96 | '''CC''' :: C compiler command |
| 97 | '''CFLAGS''' :: C compiler flags |
| 98 | '''LDFLAGS''' :: linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard directory <lib dir> |
| 99 | '''CPPFLAGS''' :: C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> |
| 100 | '''CXX''' :: C++ compiler command |
| 101 | '''CXXFLAGS''' :: C++ compiler flags. |
| 102 | '''CPP''' :: C preprocessor |
| 103 | '''CXXCPP''' :: C++ preprocessor |
| 104 | '''F77''' :: Fortran 77 compiler command |
| 105 | '''FFLAGS''' :: Fortran 77 compiler flags |
| 106 | '''MYSQL_CONFIG''' :: mysql_config program |
124 | | 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) |
| 127 | in the BOINC top-level source directory. |
| 128 | This updates the `AC_INIT` line in `configure.ac` and regenerates files that use the version numbers |
| 129 | (config.h, py/version.py, test/version.inc, client/win/win_config.h, Makefiles) |