~ubuntu-branches/ubuntu/lucid/boinc/lucid

« back to all changes in this revision

Viewing changes to doc/build_system.php

  • Committer: Bazaar Package Importer
  • Author(s): Frank S. Thomas, Frank S. Thomas
  • Date: 2008-05-31 08:02:47 UTC
  • mfrom: (1.1.8 upstream)
  • Revision ID: james.westby@ubuntu.com-20080531080247-4ce890lp2rc768cr
Tags: 6.2.7-1
[ Frank S. Thomas ]
* New upstream release.
  - BOINC Manager: Redraw disk usage charts immediately after connecting to
    a (different) client. (closes: 463823)
* debian/copyright:
  - Added the instructions from debian/README.Debian-source about how
    repackaged BOINC tarballs can be reproduced because DevRef now
    recommends to put this here instead of in the afore-mentioned file.
  - Updated for the new release.
* Removed the obsolete debian/README.Debian-source.
* For consistency upstream renamed the core client and the command tool
  ("boinc_client" to "boinc" and "boinc_cmd" to "boinccmd"). Done the same
  in all packages and created symlinks with the old names for the binaries
  and man pages. Also added an entry in debian/boinc-client.NEWS explaining
  this change.
* debian/rules: Do not list Makefile.ins in the clean target individually,
  just remove all that can be found.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?php
2
 
require_once("docutil.php");
3
 
page_head("Building BOINC on Unix");
4
 
 
5
 
echo "
6
 
The BOINC software consists of several components:
7
 
<p>
8
 
<center>
9
 
<img src=components.png>
10
 
</center>
11
 
<p>
12
 
<ul>
13
 
<li> <b>Miscellaneous</b>: the API and various shared code.
14
 
<li> <b>Client</b>: the core client and Manager.
15
 
<li> <b>Server</b>: the scheduler, file upload handler, daemons, and tools.
16
 
</ul>
17
 
On UNIX systems, the BOINC software can be built by typing
18
 
<pre>
19
 
./_autosetup
20
 
./configure [see options below]
21
 
make
22
 
</pre>
23
 
in the top directory.
24
 
<ul>
25
 
<li> If you're creating a project, you need to build the server
26
 
and miscellaneous software
27
 
(you <b>don't</b> need to build the client software;
28
 
participants can get that from the BOINC web site).
29
 
Use
30
 
<pre>
31
 
./configure --disable-client
32
 
</pre>
33
 
<li> If you're porting the BOINC client software to a new platform,
34
 
you need the client and miscellaneous components.
35
 
Use
36
 
<pre>
37
 
./configure --disable-server
38
 
</pre>
39
 
<li> If you're developing or porting a BOINC application,
40
 
you need only the miscellaneous component.
41
 
Use
42
 
<pre>
43
 
./configure --disable-server --disable-client
44
 
</pre>
45
 
</ul>
46
 
 
47
 
 
48
 
<h3>Configuration</h3>
49
 
 
50
 
<p>
51
 
Usage:
52
 
<pre>
53
 
./configure [OPTION]... [VAR=VALUE]...
54
 
</pre>
55
 
 
56
 
You can use environment
57
 
variables to override the choices made by `configure' or to help
58
 
it to find libraries and programs with nonstandard names/locations.
59
 
To assign environment variables (e.g., CC, CFLAGS...), specify them as
60
 
VAR=VALUE.
61
 
Example: to compile BOINC with strict compiler warnings, use
62
 
<pre>
63
 
./configure CXXFLAGS=\"-Wall -W -Wmissing-prototypes -Wstrict-prototypes -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -fno-common \"
64
 
</pre>
65
 
 
66
 
<p>
67
 
Defaults for the options are specified in brackets.
68
 
";
69
 
list_start();
70
 
list_bar("Configuration");
71
 
list_item("-h, --help",
72
 
    "display configuration options and exit"
73
 
);
74
 
list_item("--host=HOST",
75
 
    "Use HOST to identify platforms in executable names.
76
 
    For Linux/x86 builds, use
77
 
    --build=i686-pc-linux-gnu"
78
 
);
79
 
list_bar("Installation directories");
80
 
list_item("--prefix=PREFIX",
81
 
    "install architecture-independent files in PREFIX [/usr/local]
82
 
    By default, `make install' will install all the files in
83
 
    `/usr/local/bin', `/usr/local/lib' etc.  You can specify
84
 
    an installation prefix other than `/usr/local' using `--prefix',
85
 
    for instance `--prefix=$HOME'.
86
 
    For better control, use the options below."
87
 
);
88
 
 
89
 
list_bar("Optional Features");
90
 
list_item("--disable-FEATURE",
91
 
    "do not include FEATURE (same as --enable-FEATURE=no)"
92
 
);
93
 
list_item("--enable-FEATURE[=ARG]",
94
 
    "include FEATURE [ARG=yes]"
95
 
);
96
 
list_item("--enable-debug",
97
 
    "enable tracing and debugging flags for all components"
98
 
);
99
 
list_item("--disable-server",
100
 
    "disable building the server component"
101
 
);
102
 
list_item("--disable-client",
103
 
    "disable building the client component
104
 
    Default: --enable-server --enable-client: builds
105
 
    both server and client.
106
 
    <p>
107
 
    If configure can't find WxWidgets it will build
108
 
    the core client but not the Manager.
109
 
    If you want to build only the core client,
110
 
    run configure with --with-wxdir=junk.
111
 
    "
112
 
);
113
 
list_item("--enable-maintainer-mode",
114
 
    "enable make rules and dependencies not useful
115
 
    (and sometimes confusing) to the casual installer"
116
 
);
117
 
list_item("--enable-shared[=PKGS]",
118
 
    "build shared libraries [default=yes]"
119
 
);
120
 
list_item("--enable-static[=PKGS]",
121
 
     "build static libraries [default=yes]"
122
 
);
123
 
list_item("--disable-static-linkage",
124
 
     "disable static linking of certain libraries"
125
 
);
126
 
list_item("--enable-client-release",
127
 
    "Try building a portable 'release-candidate'
128
 
    (currently implemented for Linux and Solaris only):
129
 
    this links libstd++ statically. You will probably
130
 
    need gcc-3.0 for this to produce a portable
131
 
    client-binary. It is therefore recommended to use
132
 
    CC=gcc-3.0 and CXX=g++-3.0 for this. (Default = no)"
133
 
);
134
 
 
135
 
list_bar("Optional Packages");
136
 
list_item("--with-PACKAGE[=ARG]",
137
 
    "use PACKAGE [ARG=yes]"
138
 
);
139
 
list_item("--without-PACKAGE",
140
 
    "do not use PACKAGE (same as --with-PACKAGE=no)"
141
 
);
142
 
list_item("--with-x",
143
 
    "use the X Window System"
144
 
);
145
 
list_item("--with-apple-opengl-framework",
146
 
     "use Apple OpenGL framework (Mac OS X only)"
147
 
);
148
 
list_item("--with-wxdir=PATH",
149
 
    "Use uninstalled version of wxWindows in PATH"
150
 
);
151
 
list_item("--with-wx-config=CONFIG",
152
 
    "wx-config script to use (optional)"
153
 
);
154
 
 
155
 
list_bar("Environment variables");
156
 
list_item("CC",
157
 
    "C compiler command"
158
 
);
159
 
list_item("CFLAGS",
160
 
    "C compiler flags"
161
 
);
162
 
list_item("LDFLAGS",
163
 
    "linker flags, e.g. -L&lt;lib dir&gt; if you have libraries in a
164
 
    nonstandard directory &lt;lib dir&gt;"
165
 
);
166
 
list_item("CPPFLAGS",
167
 
    "C/C++ preprocessor flags, e.g. -I&lt;include dir&gt; if you have
168
 
      headers in a nonstandard directory &lt;include dir&gt;"
169
 
);
170
 
list_item("CXX",
171
 
    "C++ compiler command"
172
 
);
173
 
list_item("CXXFLAGS",
174
 
    "C++ compiler flags.
175
 
    "
176
 
);
177
 
list_item("CPP",
178
 
    "C preprocessor"
179
 
);
180
 
list_item("CXXCPP",
181
 
    "C++ preprocessor"
182
 
);
183
 
list_item("F77",
184
 
    "Fortran 77 compiler command"
185
 
);
186
 
list_item("FFLAGS",
187
 
    "Fortran 77 compiler flags"
188
 
);
189
 
list_item("MYSQL_CONFIG",
190
 
     "mysql_config program"
191
 
);
192
 
list_end();
193
 
echo "
194
 
 
195
 
 
196
 
<h2>Source layout</h2>
197
 
 
198
 
<p>
199
 
  The top-level <code>Makefile.am</code> contains the
200
 
  <code>SUBDIRS=</code> line which sets up directory recursion, and
201
 
  the rules for creating source distributions.
202
 
<p>
203
 
  Each subdirectory's <code>Makefile.am</code> contains the rules for
204
 
  making the binaries and libraries in that directory and any extra
205
 
  files to distribute.
206
 
<p>
207
 
  Usually you will want to run <code>make</code> from the top level
208
 
  (the directory containing the file <code>configure</code>), but
209
 
  sometimes it is useful to run <code>make</code> and <code>make
210
 
    check</code> in certain subdirectories (e.g. <code>client/</code>).
211
 
 
212
 
<h2>Adding new directories</h2>
213
 
If you create a new directory with another <code>Makefile.am</code>,
214
 
you should
215
 
<ul>
216
 
<li> make sure the directory is referenced by
217
 
a <code>SUBDIRS=</code> line from its
218
 
parent <code>Makefile.am</code>
219
 
<li>
220
 
add it to the
221
 
AC_CONFIG_FILES directive in <code>configure.ac</code>.
222
 
</ul>
223
 
 
224
 
<h2>Version number</h2>
225
 
To set the BOINC client version:
226
 
<pre>
227
 
  set-version 7.17.56
228
 
</pre>
229
 
in the BOINC top-level source directory.  This updates
230
 
the <code>AC_INIT</code> line in
231
 
<code>configure.ac</code> and regenerates files that use the version numbers
232
 
(config.h, py/version.py, test/version.inc, client/win/win_config.h, Makefiles)
233
 
 
234
 
";
235
 
page_tail();
236
 
?>