1DUNE-INSTALL(1) Dune Manual DUNE-INSTALL(1)
2
3
4
6 dune-install - Install packages defined in the workspace.
7
9 The installation directories used are defined by priority:
10 - directories set on the command line of dune install, or corresponding
11 environment variables
12 - directories set in dune binary. They are setup before the compilation
13 of dune with ./configure
14 - inferred from the environment variable OPAM_SWITCH_PREFIX if present
15
17 --action-stderr-on-success=VAL
18 Same as --action-stdout-on-success but for the standard output for
19 error messages. A good default for large mono-repositories is
20 --action-stdout-on-success=swallow
21 --action-stderr-on-success=must-be-empty. This ensures that a
22 successful build has a "clean" empty output.
23
24 --action-stdout-on-success=VAL
25 Specify how to deal with the standard output of actions when they
26 succeed. Possible values are: print to just print it to Dune's
27 output, swallow to completely ignore it and must-be-empty to
28 enforce that the action printed nothing. With must-be-empty, Dune
29 will consider that the action failed if it printed something to its
30 standard output. The default is print.
31
32 --bindir=PATH
33 Manually override the directory to install public binaries. Only
34 absolute path accepted.
35
36 --build-info
37 Show build information.
38
39 --context=CONTEXT
40 Select context to install from. By default, install files from all
41 defined contexts.
42
43 --create-install-files
44 Do not directly install, but create install files in the root
45 directory and create substituted files if needed in destdir
46 (_destdir by default).
47
48 --datadir=PATH
49 Manually override the directory to install files from share
50 section. Only absolute path accepted.
51
52 --destdir=PATH (absent DESTDIR env)
53 This directory is prepended to all installed paths.
54
55 --display-separate-messages
56 Separate error messages with a blank line.
57
58 --docdir=PATH
59 Manually override the directory to install documentation files.
60 Only absolute path accepted.
61
62 --dry-run
63 Only display the file operations that would be performed.
64
65 --error-reporting=VAL (absent=deterministic)
66 Controls when the build errors are reported. early - report errors
67 as soon as they are discovered. deterministic - report errors at
68 the end of the build in a deterministic order. twice - report each
69 error twice: once as soon as the error is discovered and then again
70 at the end of the build, in a deterministic order.
71
72 --etcdir=PATH
73 Manually override the directory to install configuration files.
74 Only absolute path accepted.
75
76 -f, --force
77 Force actions associated to aliases to be re-executed even if their
78 dependencies haven't changed.
79
80 --file-watcher=VAL (absent=automatic)
81 Mechanism to detect changes in the source. Automatic to make dune
82 run an external program to detect changes. Manual to notify dune
83 that files have changed manually."
84
85 --libdir=PATH
86 Directory where library files are copied, relative to prefix or
87 absolute. If --prefix is specified the default is $prefix/lib. Only
88 absolute path accepted.
89
90 --libexecdir=PATH
91 Manually override the directory to install executable library
92 files. Only absolute path accepted.
93
94 --mandir=PATH
95 Manually override the directory to install man pages. Only absolute
96 path accepted.
97
98 --passive-watch-mode
99 Similar to [--watch], but only start a build when instructed
100 externally by an RPC.
101
102 --prefix=PREFIX (absent DUNE_INSTALL_PREFIX env)
103 Directory where files are copied. For instance binaries are copied
104 into $prefix/bin, library files into $prefix/lib, etc...
105
106 --react-to-insignificant-changes
107 react to insignificant file system changes; this is only useful for
108 benchmarking dune
109
110 --relocatable
111 Make the binaries relocatable (the installation directory can be
112 moved). The installation directory must be specified with --prefix
113
114 --sandbox=VAL (absent DUNE_SANDBOX env)
115 Sandboxing mode to use by default. Some actions require a certain
116 sandboxing mode, so they will ignore this setting. The allowed
117 values are: none, symlink, copy, hardlink.
118
119 --sbindir=PATH
120 Manually override the directory to install files from sbin section.
121 Only absolute path accepted.
122
123 --sections=VAL
124 sections that should be installed
125
126 -w, --watch
127 Instead of terminating build after completion, wait continuously
128 for file changes.
129
130 --wait-for-filesystem-clock
131 Dune digest file contents for better incrementally. These digests
132 are themselves cached. In some cases, Dune needs to drop some
133 digest cache entries in order for things to be reliable. This
134 option makes Dune wait for the file system clock to advance so that
135 it doesn't need to drop anything. You should probably not care
136 about this option; it is mostly useful for Dune developers to make
137 Dune tests of the digest cache more reproducible.
138
140 These options are common to all commands.
141
142 --always-show-command-line
143 Always show the full command lines of programs executed by dune
144
145 --auto-promote
146 Automatically promote files. This is similar to running dune
147 promote after the build.
148
149 --build-dir=FILE (absent DUNE_BUILD_DIR env)
150 Specified build directory. _build if unspecified
151
152 --cache=VAL (absent DUNE_CACHE env)
153 Enable or disable Dune cache (either enabled or disabled). Default
154 is `disabled'.
155
156 --cache-check-probability=VAL (absent DUNE_CACHE_CHECK_PROBABILITY env)
157 Check build reproducibility by re-executing randomly chosen rules
158 and comparing their results with those stored in Dune cache. Note:
159 by increasing the probability of such checks you slow down the
160 build. The default probability is zero, i.e. no rules are checked.
161
162 --cache-storage-mode=VAL (absent DUNE_CACHE_STORAGE_MODE env)
163 Dune cache storage mode (one of auto, hardlink or copy). Default is
164 `auto'.
165
166 --config-file=FILE
167 Load this configuration file instead of the default one.
168
169 --debug-artifact-substitution
170 Print debugging info about artifact substitution
171
172 --debug-backtraces
173 Always print exception backtraces.
174
175 --debug-cache=VAL
176 Show debug messages on cache misses for the given cache layers.
177 Value is a comma-separated list of cache layer names. All available
178 cache layers: shared,workspace-local,fs.
179
180 --debug-dependency-path
181 In case of error, print the dependency path from the targets on the
182 command line to the rule that failed.
183
184 --debug-digests
185 Explain why Dune decides to re-digest some files
186
187 --debug-load-dir
188 Print debugging info about directory loading
189
190 --debug-store-digest-preimage
191 Store digest preimage for all computed digests, so that it's
192 possible to reverse them later, for debugging. The digests are
193 stored in the shared cache (see --cache flag) as values, even if
194 cache is otherwise disabled. This should be used only for
195 debugging, since it's slow and it litters the shared cache.
196
197 --default-target=TARGET (absent=@@default)
198 Set the default target that when none is specified to dune build.
199
200 --diff-command=VAL (absent DUNE_DIFF_COMMAND env)
201 Shell command to use to diff files. Use - to disable printing the
202 diff.
203
204 --disable-promotion (absent DUNE_DISABLE_PROMOTION env)
205 Disable all promotion rules
206
207 --display=MODE
208 Control the display mode of Dune. See dune-config(5) for more
209 details. Valid values for this option are progress, verbose, short,
210 quiet or tui.
211
212 --dump-gc-stats=FILE
213 Dump the garbage collector stats to a file after the build is
214 complete.
215
216 --dump-memo-graph=FILE
217 Dumps the dependency graph to a file after the build is complete
218
219 --dump-memo-graph-format=FORMAT (absent=gexf)
220 File format to be used when dumping dependency graph
221
222 --dump-memo-graph-with-timing
223 With --dump-memo-graph, will re-run each cached node in the Memo
224 graph after building and include the runtime in the output. Since
225 all nodes contain a cached value, this will measure just the
226 runtime of each node
227
228 --help[=FMT] (default=auto)
229 Show this help in format FMT. The value FMT must be one of auto,
230 pager, groff or plain. With auto, the format is pager or plain
231 whenever the TERM env var is dumb or undefined.
232
233 --ignore-promoted-rules
234 Ignore rules with (mode promote), except ones with (only ...). The
235 variable %{ignoring_promoted_rules} in dune files reflects whether
236 this option was passed or not.
237
238 --instrument-with=BACKENDS (absent DUNE_INSTRUMENT_WITH env)
239 "Enable instrumentation by BACKENDS. BACKENDS is a comma-separated
240 list of library names, each one of which must declare an
241 instrumentation backend.
242
243 -j JOBS
244 Run no more than JOBS commands simultaneously.
245
246 --no-buffer
247 Do not buffer the output of commands executed by dune. By default
248 dune buffers the output of subcommands, in order to prevent
249 interleaving when multiple commands are executed in parallel.
250 However, this can be an issue when debugging long running tests.
251 With --no-buffer, commands have direct access to the terminal. Note
252 that as a result their output won't be captured in the log file.
253 You should use this option in conjunction with -j 1, to avoid
254 interleaving. Additionally you should use --verbose as well, to
255 make sure that commands are printed before they are being executed.
256
257 --no-config
258 Do not load the configuration file
259
260 --no-print-directory
261 Suppress "Entering directory" messages
262
263 --only-packages=PACKAGES
264 Ignore stanzas referring to a package that is not in PACKAGES.
265 PACKAGES is a comma-separated list of package names. Note that this
266 has the same effect as deleting the relevant stanzas from dune
267 files. It is mostly meant for releases. During development, it is
268 likely that what you want instead is to build a particular
269 <package>.install target.
270
271 -p PACKAGES, --for-release-of-packages=PACKAGES (required)
272 Shorthand for --release --only-packages PACKAGE. You must use this
273 option in your <package>.opam files, in order to build only what's
274 necessary when your project contains multiple packages as well as
275 getting reproducible builds.
276
277 --print-metrics
278 Print out various performance metrics after every build
279
280 --profile=VAL (absent DUNE_PROFILE env)
281 Select the build profile, for instance dev or release. The default
282 is dev.
283
284 --promote-install-files[=VAL] (default=true)
285 Promote the generated <package>.install files to the source tree
286
287 --release
288 Put dune into a reproducible release mode. This is in fact a
289 shorthand for --root . --ignore-promoted-rules --no-config
290 --profile release --always-show-command-line
291 --promote-install-files --default-target @install
292 --require-dune-project-file. You should use this option for release
293 builds. For instance, you must use this option in your
294 <package>.opam files. Except if you already use -p, as -p implies
295 this option.
296
297 --require-dune-project-file[=VAL] (default=true)
298 Fail if a dune-project file is missing.
299
300 --root=DIR
301 Use this directory as workspace root instead of guessing it. Note
302 that this option doesn't change the interpretation of targets given
303 on the command line. It is only intended for scripts.
304
305 --store-orig-source-dir (absent DUNE_STORE_ORIG_SOURCE_DIR env)
306 Store original source location in dune-package metadata
307
308 --terminal-persistence=MODE
309 Changes how the log of build results are displayed to the console
310 between rebuilds while in --watch mode. Supported modes: preserve,
311 clear-on-rebuild, clear-on-rebuild-and-flush-history.
312
313 --trace-extended
314 Output extended trace data (requires trace-file)
315
316 --trace-file=FILE
317 Output trace data in catapult format (compatible with
318 chrome://tracing)
319
320 --verbose
321 Same as --display verbose
322
323 --version
324 Show version information.
325
326 --watch-exclusions=REGEX
327 Adds a POSIX regular expression that will exclude matching
328 directories from `dune build --watch`. The option
329 --watch-exclusions can be repeated to add multiple exclusions.
330 Semicolons can be also used as a separator. If no exclusions are
331 provided, then a standard set of exclusions is used; however, if
332 one or more --watch-exclusions are used, none of the standard
333 exclusions are used. The standard exclusions are: ^_opam /_opam
334 ^_esy /_esy ^\.#.* /\.#.* ~$ ^#[^#]*#$ /#[^#]*#$ ^4913$ /4913$
335 /.git /.hg :/windows
336
337 --workspace=FILE (absent DUNE_WORKSPACE env)
338 Use this specific workspace file instead of looking it up.
339
340 -x VAL
341 Cross-compile using this toolchain.
342
344 Use `dune COMMAND --help' for help on a single command.
345
347 install exits with the following status:
348
349 0 on success.
350
351 1 if an error happened.
352
353 130 if it was interrupted by a signal.
354
356 These environment variables affect the execution of install:
357
358 DESTDIR
359 See option --destdir.
360
361 DUNE_BUILD_DIR
362 Specified build directory. _build if unspecified
363
364 DUNE_CACHE
365 Enable or disable Dune cache (either enabled or disabled). Default
366 is `disabled'.
367
368 DUNE_CACHE_CHECK_PROBABILITY
369 Check build reproducibility by re-executing randomly chosen rules
370 and comparing their results with those stored in Dune cache. Note:
371 by increasing the probability of such checks you slow down the
372 build. The default probability is zero, i.e. no rules are checked.
373
374 DUNE_CACHE_STORAGE_MODE
375 Dune cache storage mode (one of auto, hardlink or copy). Default is
376 `auto'.
377
378 DUNE_DIFF_COMMAND
379 Shell command to use to diff files. Use - to disable printing the
380 diff.
381
382 DUNE_DISABLE_PROMOTION
383 Disable all promotion rules
384
385 DUNE_INSTALL_PREFIX
386 See option --prefix.
387
388 DUNE_INSTRUMENT_WITH
389 "Enable instrumentation by BACKENDS. BACKENDS is a comma-separated
390 list of library names, each one of which must declare an
391 instrumentation backend.
392
393 DUNE_PROFILE
394 Build profile. dev if unspecified or release if -p is set.
395
396 DUNE_SANDBOX
397 Sandboxing mode to use by default. (see --sandbox)
398
399 DUNE_STORE_ORIG_SOURCE_DIR
400 Store original source location in dune-package metadata
401
402 DUNE_WORKSPACE
403 Use this specific workspace file instead of looking it up.
404
406 Check bug reports at https://github.com/ocaml/dune/issues
407
409 dune(1)
410
411
412
413Dune n/a DUNE-INSTALL(1)