| @@ -1,350 +1,360 @@ | | | @@ -1,350 +1,360 @@ |
| | | 1 | .\" $NetBSD: sysbuild.1,v 1.3 2012/08/11 19:32:50 wiz Exp $ |
1 | .\" Copyright 2012 Google Inc. | | 2 | .\" Copyright 2012 Google Inc. |
2 | .\" All rights reserved. | | 3 | .\" All rights reserved. |
3 | .\" | | 4 | .\" |
4 | .\" Redistribution and use in source and binary forms, with or without | | 5 | .\" Redistribution and use in source and binary forms, with or without |
5 | .\" modification, are permitted provided that the following conditions are | | 6 | .\" modification, are permitted provided that the following conditions are |
6 | .\" met: | | 7 | .\" met: |
7 | .\" | | 8 | .\" |
8 | .\" * Redistributions of source code must retain the above copyright | | 9 | .\" * Redistributions of source code must retain the above copyright |
9 | .\" notice, this list of conditions and the following disclaimer. | | 10 | .\" notice, this list of conditions and the following disclaimer. |
10 | .\" * Redistributions in binary form must reproduce the above copyright | | 11 | .\" * Redistributions in binary form must reproduce the above copyright |
11 | .\" notice, this list of conditions and the following disclaimer in the | | 12 | .\" notice, this list of conditions and the following disclaimer in the |
12 | .\" documentation and/or other materials provided with the distribution. | | 13 | .\" documentation and/or other materials provided with the distribution. |
13 | .\" * Neither the name of Google Inc. nor the names of its contributors | | 14 | .\" * Neither the name of Google Inc. nor the names of its contributors |
14 | .\" may be used to endorse or promote products derived from this software | | 15 | .\" may be used to endorse or promote products derived from this software |
15 | .\" without specific prior written permission. | | 16 | .\" without specific prior written permission. |
16 | .\" | | 17 | .\" |
17 | .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | | 18 | .\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
18 | .\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | | 19 | .\" "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
19 | .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | | 20 | .\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
20 | .\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | | 21 | .\" A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
21 | .\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | | 22 | .\" OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
22 | .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | | 23 | .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
23 | .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | | 24 | .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
24 | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | | 25 | .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
25 | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | | 26 | .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
26 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | | 27 | .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
27 | .\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | | 28 | .\" OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 | .Dd July 25, 2012 | | 29 | .Dd July 25, 2012 |
29 | .Dt SYSBUILD 1 | | 30 | .Dt SYSBUILD 1 |
30 | .Os | | 31 | .Os |
31 | .Sh NAME | | 32 | .Sh NAME |
32 | .Nm sysbuild | | 33 | .Nm sysbuild |
33 | .Nd performs fully automatic builds of NetBSD | | 34 | .Nd performs fully automatic builds of NetBSD |
34 | .Sh SYNOPSIS | | 35 | .Sh SYNOPSIS |
35 | .Nm | | 36 | .Nm |
36 | .Op Fl c Ar config_name | | 37 | .Op Fl c Ar config_name |
37 | .Op Fl o Ar variable=value | | 38 | .Op Fl o Ar variable=value |
38 | build | | 39 | build |
39 | .Op Fl f | | 40 | .Op Fl f |
40 | .Op Ar build_targets | | 41 | .Op Ar build_targets |
41 | .Nm | | 42 | .Nm |
42 | .Op Fl c Ar config_name | | 43 | .Op Fl c Ar config_name |
43 | .Op Fl o Ar variable=value | | 44 | .Op Fl o Ar variable=value |
44 | config | | 45 | config |
45 | .Nm | | 46 | .Nm |
46 | .Op Fl c Ar config_name | | 47 | .Op Fl c Ar config_name |
47 | .Op Fl o Ar variable=value | | 48 | .Op Fl o Ar variable=value |
48 | fetch | | 49 | fetch |
49 | .Sh DESCRIPTION | | 50 | .Sh DESCRIPTION |
50 | .Nm | | 51 | .Nm |
51 | is a utility to build NetBSD releases in a fully automated manner. | | 52 | is a utility to build |
| | | 53 | .Nx |
| | | 54 | releases in a fully automated manner. |
52 | The process is made unattended by relying on a configuration file that | | 55 | The process is made unattended by relying on a configuration file that |
53 | prespecifies the location of all build components and the desired goals of | | 56 | prespecifies the location of all build components and the desired goals of |
54 | the build. | | 57 | the build. |
55 | If you want to plug | | 58 | If you want to plug |
56 | .Nm | | 59 | .Nm |
57 | into | | 60 | into |
58 | .Xr cron 8 , | | 61 | .Xr cron 8 , |
59 | please take a look to | | 62 | please take a look to |
60 | .Xr sysbuild4cron 1 | | 63 | .Xr sysbuild4cron 1 |
61 | now. | | 64 | now. |
62 | .Pp | | 65 | .Pp |
63 | .Nm | | 66 | .Nm |
64 | can be seen as a simple wrapper over | | 67 | can be seen as a simple wrapper over |
65 | .Xr cvs 1 | | 68 | .Xr cvs 1 |
66 | and the | | 69 | and the |
67 | .Nm build.sh | | 70 | .Nm build.sh |
68 | script that ships with the NetBSD source tree. | | 71 | script that ships with the |
| | | 72 | .Nx |
| | | 73 | source tree. |
69 | .Nm | | 74 | .Nm |
70 | provides the following additional features: | | 75 | provides the following additional features: |
71 | .Bl -bullet | | 76 | .Bl -bullet |
72 | .It | | 77 | .It |
73 | Automatically fetch or update the NetBSD source trees (both src and xsrc) | | 78 | Automatically fetch or update the |
| | | 79 | .Nx |
| | | 80 | source trees (both src and xsrc) |
74 | before performing a build. | | 81 | before performing a build. |
75 | .It | | 82 | .It |
76 | Preconfigure the way | | 83 | Preconfigure the way |
77 | .Nm build.sh | | 84 | .Nm build.sh |
78 | is invoked by storing all relevant details in a configuration file. | | 85 | is invoked by storing all relevant details in a configuration file. |
79 | .It | | 86 | .It |
80 | Perform builds for a variety of platforms with a single invocation. | | 87 | Perform builds for a variety of platforms with a single invocation. |
81 | .It | | 88 | .It |
82 | Trivially set up periodic | | 89 | Trivially set up periodic |
83 | .Nx | | 90 | .Nx |
84 | rebuilds by adding a single line to your | | 91 | rebuilds by adding a single line to your |
85 | .Xr crontab 5 . | | 92 | .Xr crontab 5 . |
86 | .El | | 93 | .El |
87 | .Pp | | 94 | .Pp |
88 | As you can see in the | | 95 | As you can see in the |
89 | .Sx SYNOPSIS | | 96 | .Sx SYNOPSIS |
90 | section, | | 97 | section, |
91 | .Nm | | 98 | .Nm |
92 | provides a subcommand-interface: the tool has several modes of operation, | | 99 | provides a subcommand-interface: the tool has several modes of operation, |
93 | and the particular mode to use for a given run is selected by the first | | 100 | and the particular mode to use for a given run is selected by the first |
94 | non-option argument in the command line. | | 101 | non-option argument in the command line. |
95 | .Pp | | 102 | .Pp |
96 | The following options apply to all commands: | | 103 | The following options apply to all commands: |
97 | .Bl -tag -width XXXX | | 104 | .Bl -tag -width XXXX |
98 | .It Fl c Ar config_name | | 105 | .It Fl c Ar config_name |
99 | Specifies the configuration file to use. | | 106 | Specifies the configuration file to use. |
100 | .Pp | | 107 | .Pp |
101 | If | | 108 | If |
102 | .Ar config_name | | 109 | .Ar config_name |
103 | includes any directory separator (aka, one or more slashes) or the | | 110 | includes any directory separator (aka, one or more slashes) or the |
104 | .Sq .conf | | 111 | .Sq .conf |
105 | suffix, then this specifies the path of the configuration file to load. | | 112 | suffix, then this specifies the path of the configuration file to load. |
106 | .Pp | | 113 | .Pp |
107 | .If | | 114 | .If |
108 | .Ar config_name | | 115 | .Ar config_name |
109 | is a plain name without any directory components nor extension, then this | | 116 | is a plain name without any directory components nor extension, then this |
110 | specifies the name of the configuration. | | 117 | specifies the name of the configuration. |
111 | .Nm | | 118 | .Nm |
112 | will first look for a configuration file in | | 119 | will first look for a configuration file in |
113 | .Pa ~/.sysbuild/<config_name>.conf | | 120 | .Pa ~/.sysbuild/<config_name>.conf |
114 | and, if not found, will use | | 121 | and, if not found, will use |
115 | .Pa @SYSBUILD_ETCDIR@/<config_name>.conf . | | 122 | .Pa @SYSBUILD_ETCDIR@/<config_name>.conf . |
116 | Any of the two files must exist, or else | | 123 | Any of the two files must exist, or else |
117 | .Nm | | 124 | .Nm |
118 | will exit with an error. | | 125 | will exit with an error. |
119 | .It Fl o Ar variable=value | | 126 | .It Fl o Ar variable=value |
120 | Applies an override to the loaded configuration. | | 127 | Applies an override to the loaded configuration. |
121 | .Pp | | 128 | .Pp |
122 | The | | 129 | The |
123 | .Ar variable | | 130 | .Ar variable |
124 | part of the argument must be any of the recognized configuration variables | | 131 | part of the argument must be any of the recognized configuration variables |
125 | described in | | 132 | described in |
126 | .Sx Configuration file | | 133 | .Sx Configuration file |
127 | below. | | 134 | below. |
128 | The | | 135 | The |
129 | .Ar value , | | 136 | .Ar value , |
130 | if not empty, specifies the value to set the configuration variable to. | | 137 | if not empty, specifies the value to set the configuration variable to. |
131 | If | | 138 | If |
132 | .Ar value | | 139 | .Ar value |
133 | is empty, then the configuration variable is unset. | | 140 | is empty, then the configuration variable is unset. |
134 | .El | | 141 | .El |
135 | .Ss The build command | | 142 | .Ss The build command |
136 | The build command provides the main functionality of | | 143 | The build command provides the main functionality of |
137 | .Nm . | | 144 | .Nm . |
138 | It performs the following steps: | | 145 | It performs the following steps: |
139 | .Bl -enum | | 146 | .Bl -enum |
140 | .It | | 147 | .It |
141 | If | | 148 | If |
142 | .Va UPDATE_SOURCES | | 149 | .Va UPDATE_SOURCES |
143 | is true, the fetch command is invoked first. | | 150 | is true, the fetch command is invoked first. |
144 | See | | 151 | See |
145 | .Sx The fetch command | | 152 | .Sx The fetch command |
146 | for more details. | | 153 | for more details. |
147 | .It | | 154 | .It |
148 | For every machine type listed in | | 155 | For every machine type listed in |
149 | .Va MACHINES , | | 156 | .Va MACHINES , |
150 | issues a | | 157 | issues a |
151 | .Nm build.sh | | 158 | .Nm build.sh |
152 | call for that particular machine using the rest of the settings defined in | | 159 | call for that particular machine using the rest of the settings defined in |
153 | the configuration file. | | 160 | the configuration file. |
154 | The targets passed to the | | 161 | The targets passed to the |
155 | .Nm build.sh | | 162 | .Nm build.sh |
156 | script are those defined in the | | 163 | script are those defined in the |
157 | .Va BUILD_TARGETS | | 164 | .Va BUILD_TARGETS |
158 | variable, or the arguments passed through the command line if any. | | 165 | variable, or the arguments passed through the command line if any. |
159 | .El | | 166 | .El |
160 | .Pp | | 167 | .Pp |
161 | The following options apply only to the build command: | | 168 | The following options apply only to the build command: |
162 | .Bl -tag -width XXXX | | 169 | .Bl -tag -width XXXX |
163 | .It Fl f | | 170 | .It Fl f |
164 | Enables fast mode, which skips updating the source trees and performs | | 171 | Enables fast mode, which skips updating the source trees and performs |
165 | update builds. | | 172 | update builds. |
166 | This is a shorthand for these generic flags: | | 173 | This is a shorthand for these generic flags: |
167 | .Fl o Ar INCREMENTAL_BUILD=true | | 174 | .Fl o Ar INCREMENTAL_BUILD=true |
168 | .Fl o Ar UPDATE_SOURCES=false . | | 175 | .Fl o Ar UPDATE_SOURCES=false . |
169 | .El | | 176 | .El |
170 | .Ss The config command | | 177 | .Ss The config command |
171 | The config command dumps the loaded configuration to the standard output. | | 178 | The config command dumps the loaded configuration to the standard output. |
172 | The format of the output is not a script, so it cannot be fed back into | | 179 | The format of the output is not a script, so it cannot be fed back into |
173 | .Nm . | | 180 | .Nm . |
174 | The purpose of this command is to aid in debugging the configuration of the | | 181 | The purpose of this command is to aid in debugging the configuration of the |
175 | tool before performing any builds, particularly when the configuration | | 182 | tool before performing any builds, particularly when the configuration |
176 | files use shell logic to determine the value of any variables. | | 183 | files use shell logic to determine the value of any variables. |
177 | .Ss The fetch command | | 184 | .Ss The fetch command |
178 | The fetch command downloads or updates the | | 185 | The fetch command downloads or updates the |
179 | .Nx | | 186 | .Nx |
180 | source trees, which include src and, optionally, xsrc. | | 187 | source trees, which include src and, optionally, xsrc. |
181 | .Pp | | 188 | .Pp |
182 | If the modules do not exist yet in the locations specified by | | 189 | If the modules do not exist yet in the locations specified by |
183 | .Va SRCDIR | | 190 | .Va SRCDIR |
184 | and | | 191 | and |
185 | .Va XSRCDIR , | | 192 | .Va XSRCDIR , |
186 | this performs an initial CVS checkout of the trees. | | 193 | this performs an initial CVS checkout of the trees. |
187 | If the modules exist, this performs a CVS update. | | 194 | If the modules exist, this performs a CVS update. |
188 | .Pp | | 195 | .Pp |
189 | The | | 196 | The |
190 | .Va CVSROOT | | 197 | .Va CVSROOT |
191 | and | | 198 | and |
192 | .Va CVSTAG | | 199 | .Va CVSTAG |
193 | variables are used to determine where to get the sources from and whether a | | 200 | variables are used to determine where to get the sources from and whether a |
194 | particular tag is desired. | | 201 | particular tag is desired. |
195 | .Pp | | 202 | .Pp |
196 | The major use of this subcommand is the following. | | 203 | The major use of this subcommand is the following. |
197 | Consider that you wish to use the standard locations of | | 204 | Consider that you wish to use the standard locations of |
198 | .Pa /usr/src | | 205 | .Pa /usr/src |
199 | and | | 206 | and |
200 | .Pa /usr/xsrc | | 207 | .Pa /usr/xsrc |
201 | for your source trees, and that you would like to keep these owned by root | | 208 | for your source trees, and that you would like to keep these owned by root |
202 | while, at the same time, you run your NetBSD builds as an unprivileged user. | | 209 | while, at the same time, you run your |
| | | 210 | .Nx |
| | | 211 | builds as an unprivileged user. |
203 | In this situation, you can use the | | 212 | In this situation, you can use the |
204 | .Sq fetch | | 213 | .Sq fetch |
205 | command as root only, set | | 214 | command as root only, set |
206 | .Va UPDATE_SOURCES | | 215 | .Va UPDATE_SOURCES |
207 | to | | 216 | to |
208 | .Sq false | | 217 | .Sq false |
209 | in your user configuration files, and do your builds as another user. | | 218 | in your user configuration files, and do your builds as another user. |
210 | .Ss Configuration file | | 219 | .Ss Configuration file |
211 | Configuration files for | | 220 | Configuration files for |
212 | .Nm | | 221 | .Nm |
213 | are plain shell scripts that define a set of recognized variables. | | 222 | are plain shell scripts that define a set of recognized variables. |
214 | .Pp | | 223 | .Pp |
215 | As scripts, they can perform any magic they desire to deduce the value of | | 224 | As scripts, they can perform any magic they desire to deduce the value of |
216 | the configuration variables. | | 225 | the configuration variables. |
217 | For example, the default configuration file shipped with | | 226 | For example, the default configuration file shipped with |
218 | .Nm | | 227 | .Nm |
219 | automatically deduces the value of the | | 228 | automatically deduces the value of the |
220 | .Va NJOBS | | 229 | .Va NJOBS |
221 | variable by looking at how many CPUs are available in the system. | | 230 | variable by looking at how many CPUs are available in the system. |
222 | .Pp | | 231 | .Pp |
223 | The following variables configure the source trees: | | 232 | The following variables configure the source trees: |
224 | .Bl -tag -width INCREMENTAL_BUILD | | 233 | .Bl -tag -width INCREMENTAL_BUILD |
225 | .It Va CVSROOT | | 234 | .It Va CVSROOT |
226 | Location of the CVS root from which to check out or update the src and xsrc | | 235 | Location of the CVS root from which to check out or update the src and xsrc |
227 | modules. | | 236 | modules. |
228 | .Pp | | 237 | .Pp |
229 | Default: | | 238 | Default: |
230 | .Sq :ext:anoncvs@anoncvs.NetBSD.org:/cvsroot | | 239 | .Sq :ext:anoncvs@anoncvs.NetBSD.org:/cvsroot |
231 | .It Va CVSTAG | | 240 | .It Va CVSTAG |
232 | CVS tag to use during checkouts or updates of the src and xsrc modules. | | 241 | CVS tag to use during checkouts or updates of the src and xsrc modules. |
233 | .Pp | | 242 | .Pp |
234 | Default: not defined. | | 243 | Default: not defined. |
235 | .It Va SRCDIR | | 244 | .It Va SRCDIR |
236 | Path to the src module. | | 245 | Path to the src module. |
237 | If you want | | 246 | If you want |
238 | .Nm | | 247 | .Nm |
239 | to perform an update of this directory before every build, you will need | | 248 | to perform an update of this directory before every build, you will need |
240 | write access to it. | | 249 | write access to it. |
241 | Otherwise, you can use a read-only directory. | | 250 | Otherwise, you can use a read-only directory. |
242 | .Pp | | 251 | .Pp |
243 | Default: | | 252 | Default: |
244 | .Pa /usr/src . | | 253 | .Pa /usr/src . |
245 | .It Va UPDATE_SOURCES | | 254 | .It Va UPDATE_SOURCES |
246 | Whether to perform an update of the source tree before every build or not. | | 255 | Whether to perform an update of the source tree before every build or not. |
247 | .Pp | | 256 | .Pp |
248 | Default: | | 257 | Default: |
249 | .Sq true . | | 258 | .Sq true . |
250 | .It Va XSRCDIR | | 259 | .It Va XSRCDIR |
251 | Path to the xsrc module. | | 260 | Path to the xsrc module. |
252 | If you want | | 261 | If you want |
253 | .Nm | | 262 | .Nm |
254 | to perform an update of this directory before every build, you will need | | 263 | to perform an update of this directory before every build, you will need |
255 | write access to it. | | 264 | write access to it. |
256 | Otherwise, you can use a read-only directory. | | 265 | Otherwise, you can use a read-only directory. |
257 | .Pp | | 266 | .Pp |
258 | Defining this variable causes | | 267 | Defining this variable causes |
259 | .Nm | | 268 | .Nm |
260 | to build the X Window System as part of the build of NetBSD. | | 269 | to build the X Window System as part of the build of |
| | | 270 | .Nx . |
261 | .Pp | | 271 | .Pp |
262 | Default: not defined. | | 272 | Default: not defined. |
263 | .El | | 273 | .El |
264 | .Pp | | 274 | .Pp |
265 | The following variables configure the location of the build files: | | 275 | The following variables configure the location of the build files: |
266 | .Bl -tag -width INCREMENTAL_BUILD | | 276 | .Bl -tag -width INCREMENTAL_BUILD |
267 | .It Va BUILD_ROOT | | 277 | .It Va BUILD_ROOT |
268 | Path to the directory in which to place build files. | | 278 | Path to the directory in which to place build files. |
269 | These include the obj tree, the destdir and the cross-build tools generated | | 279 | These include the obj tree, the destdir and the cross-build tools generated |
270 | by the | | 280 | by the |
271 | .Nm build.sh | | 281 | .Nm build.sh |
272 | script. | | 282 | script. |
273 | The contents of this directory are sorted by machine type so that it can be | | 283 | The contents of this directory are sorted by machine type so that it can be |
274 | shared across builds for different machines. | | 284 | shared across builds for different machines. |
275 | .Pp | | 285 | .Pp |
276 | Default: | | 286 | Default: |
277 | .Pa ~/sysbuild/ . | | 287 | .Pa ~/sysbuild/ . |
278 | .It Va RELEASEDIR | | 288 | .It Va RELEASEDIR |
279 | Path to the directory that will contain the build products (aka the release | | 289 | Path to the directory that will contain the build products (aka the release |
280 | files). | | 290 | files). |
281 | The contents of this directory are sorted by machine type so that it can be | | 291 | The contents of this directory are sorted by machine type so that it can be |
282 | shared across builds for different machines. | | 292 | shared across builds for different machines. |
283 | .Pp | | 293 | .Pp |
284 | Default: | | 294 | Default: |
285 | .Pa ~/sysbuild/release . | | 295 | .Pa ~/sysbuild/release . |
286 | .El | | 296 | .El |
287 | .Pp | | 297 | .Pp |
288 | The following variables configure the build process: | | 298 | The following variables configure the build process: |
289 | .Bl -tag -width INCREMENTAL_BUILD | | 299 | .Bl -tag -width INCREMENTAL_BUILD |
290 | .It Va BUILD_TARGETS | | 300 | .It Va BUILD_TARGETS |
291 | Whitespace-separated list of targets to pass to | | 301 | Whitespace-separated list of targets to pass to |
292 | .Nm build.sh | | 302 | .Nm build.sh |
293 | during builds. | | 303 | during builds. |
294 | .Pp | | 304 | .Pp |
295 | Default: | | 305 | Default: |
296 | .Sq release . | | 306 | .Sq release . |
297 | .It Va INCREMENTAL_BUILD | | 307 | .It Va INCREMENTAL_BUILD |
298 | Whether to perform update builds or not. | | 308 | Whether to perform update builds or not. |
299 | An update build reuses existing obj, destdir and tools trees. | | 309 | An update build reuses existing obj, destdir and tools trees. |
300 | .Pp | | 310 | .Pp |
301 | Of special note is that | | 311 | Of special note is that |
302 | .Nm | | 312 | .Nm |
303 | will take care of pruning files likely to cause breakage during update | | 313 | will take care of pruning files likely to cause breakage during update |
304 | builds before performing the build itself. | | 314 | builds before performing the build itself. |
305 | As an example, this includes deleting all the modules from | | 315 | As an example, this includes deleting all the modules from |
306 | .Pa destdir/stand/<platform>/ . | | 316 | .Pa destdir/stand/<platform>/ . |
307 | .Pp | | 317 | .Pp |
308 | Default: | | 318 | Default: |
309 | .Sq false . | | 319 | .Sq false . |
310 | .It Va MACHINES | | 320 | .It Va MACHINES |
311 | Whitespace-separated list of machine types to build for. | | 321 | Whitespace-separated list of machine types to build for. |
312 | .Pp | | 322 | .Pp |
313 | Default: the name of the host machine type. | | 323 | Default: the name of the host machine type. |
314 | .It Va NJOBS | | 324 | .It Va NJOBS |
315 | Number of parallel jobs to use during the build. | | 325 | Number of parallel jobs to use during the build. |
316 | If not set, disables parallel builds (which, due to | | 326 | If not set, disables parallel builds (which, due to |
317 | .Nm make 1 | | 327 | .Nm make 1 |
318 | semantics, is not the same as setting this to 1). | | 328 | semantics, is not the same as setting this to 1). |
319 | .Pp | | 329 | .Pp |
320 | Default: not defined. | | 330 | Default: not defined. |
321 | .El | | 331 | .El |
322 | .Sh FILES | | 332 | .Sh FILES |
323 | .Bl -tag -width XXXX | | 333 | .Bl -tag -width XXXX |
324 | .It Pa @SYSBUILD_ETCDIR@/ | | 334 | .It Pa @SYSBUILD_ETCDIR@/ |
325 | Directory containing all system-wide configuration files. | | 335 | Directory containing all system-wide configuration files. |
326 | .It Pa @SYSBUILD_ETCDIR@/default.conf | | 336 | .It Pa @SYSBUILD_ETCDIR@/default.conf |
327 | Default configuration file to load if the user does not have a | | 337 | Default configuration file to load if the user does not have a |
328 | corresponding | | 338 | corresponding |
329 | .Pa ~/.sysbuild/default.conf | | 339 | .Pa ~/.sysbuild/default.conf |
330 | file and the | | 340 | file and the |
331 | .Fl c | | 341 | .Fl c |
332 | flag is not provided. | | 342 | flag is not provided. |
333 | .It Pa ~/.sysbuild/ | | 343 | .It Pa ~/.sysbuild/ |
334 | Directory containing all user-specific configuration files. | | 344 | Directory containing all user-specific configuration files. |
335 | .It Pa ~/.sysbuild/default.conf | | 345 | .It Pa ~/.sysbuild/default.conf |
336 | Default configuration file to load when the | | 346 | Default configuration file to load when the |
337 | .Fl c | | 347 | .Fl c |
338 | flag is not provided. | | 348 | flag is not provided. |
339 | .El | | 349 | .El |
340 | .Sh SEE ALSO | | 350 | .Sh SEE ALSO |
341 | .Xr cvs 1 , | | 351 | .Xr cvs 1 , |
342 | .Xr sysbuild4cron 1 , | | 352 | .Xr sysbuild4cron 1 , |
343 | .Xr hier 7 and | | 353 | .Xr hier 7 , |
344 | .Pa /usr/src/BUILDING . | | 354 | .Pa /usr/src/BUILDING |
345 | .Sh AUTHORS | | 355 | .Sh AUTHORS |
346 | The | | 356 | The |
347 | .Nm | | 357 | .Nm |
348 | utility was developed by | | 358 | utility was developed by |
349 | .An Julio Merino | | 359 | .An Julio Merino |
350 | .Aq jmmv@NetBSD.org . | | 360 | .Aq jmmv@NetBSD.org . |