Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DUNE(1) 			   Dune Manual				 DUNE(1)

NAME
     dune - composable build system for OCaml

SYNOPSIS
     dune build [--watch]
     dune runtest [--watch]
     dune exec NAME
     dune utop [DIR]
     dune install
     dune init project NAME [PATH] [--libs=l1,l2 --ppx=p1,p2 --inline-tests]

DESCRIPTION
     Dune is a build system designed for OCaml projects only. It focuses on pro-
     viding  the user with a consistent experience and takes care of most of the
     low-level details of OCaml compilation. All you have to do is provide a de-
     scription of your project and Dune will do the rest.

     The scheme it implements is inspired from the one used inside  Jane  Street
     and  adapted  to the open source world. It has matured over a long time and
     is used daily by hundreds of developers, which  means  that  it  is  highly
     tested and productive.

COMMAND ALIASES
     promote [OPTION]a| [FILE]a|
	 An alias for promotion apply.

     test [OPTION]a| [DIR]a|
	 An alias for runtest.

COMMANDS
     build [OPTION]a| [TARGET]a|
	 Build the given targets, or all installable targets if none are given.

     cache COMMAND a|
	 Manage the shared cache of build artifacts

     clean [OPTION]a|
	 Clean the project.

     coq COMMAND a|
	 Command group related to Coq.

     describe [OPTION]a| [STRING]a|
	 Describe the workspace.

     diagnostics [OPTION]a|
	 fetch and return errors from the current build

     exec [OPTION]a| PROG [ARGS]a|
	 Execute  a command in a similar environment as if installation was per-
	 formed.

     external-lib-deps [OPTION]a| [TARGET]a|
	 Removed command.

     fmt [OPTION]a|
	 Format source code.

     format-dune-file [--dune-version=VERSION] [OPTION]a| [FILE]
	 Format dune files

     help [--build-info] [--man-format=FMT] [OPTION]a| [TOPIC]
	 Additional Dune help

     init COMMAND a|
	 Command group for initializing dune components

     install [OPTION]a| [PACKAGE]a|
	 Install packages.

     installed-libraries [OPTION]a|
	 Print out libraries installed on the system.

     internal COMMAND a|

     ocaml COMMAND a|

     ocaml-merlin [OPTION]a|
	 Start a merlin configuration server

     printenv [OPTION]a| [PATH]
	 Print the environment of a directory

     promotion COMMAND a|
	 Control how changes are propagated back to source code.

     rpc COMMAND a|
	 Dune's RPC mechanism. Experimental.

     rules [OPTION]a| [TARGET]a|
	 Dump internal rules.

     runtest [OPTION]a| [DIR]a|
	 Run tests.

     shutdown [OPTION]a|
	 cancel and shutdown any builds in the current workspace

     subst [--build-info] [OPTION]a|
	 Substitute watermarks in source files.

     top [OPTION]a| [DIR]
	 Print a list of toplevel directives for including directories and load-
	 ing cma files.

     uninstall [OPTION]a| [PACKAGE]a|
	 Uninstall packages.

     upgrade [OPTION]a|
	 Upgrade jbuilder projects to dune

     utop [OPTION]a| [DIR] [ARGS]a|
	 Load library in utop

COMMON OPTIONS
     These options are common to all commands.

     --help[=FMT] (default=auto)
	 Show this help in format FMT. The value FMT must be one of auto, pager,
	 groff or plain. With auto, the format is pager or  plain  whenever  the
	 TERM env var is dumb or undefined.

     --version
	 Show version information.

MORE HELP
     Use `dune COMMAND --help' for help on a single command.

EXIT STATUS
     dune exits with the following status:

     0	 on success.

     123
	 on indiscriminate errors reported on standard error.

     124
	 on command line parsing errors.

     125
	 on unexpected internal errors (bugs).

ENVIRONMENT
     These environment variables affect the execution of dune:

     CLICOLOR
	 If  different than 0, ANSI colors are supported and should be used when
	 the program isnat piped. If equal to 0, donat output ANSI color  escape
	 codes

     CLICOLOR_FORCE
	 If different than 0, ANSI colors should be enabled no matter what.

BUGS
     Check bug reports at https://github.com/ocaml/dune/issues

EXAMPLES
     1.  Initialise a new project named `foo':

	   dune init project foo

     2.  Build all targets in the current source tree:

	   dune build

     3.  Run the executable named `bar':

	   dune exec bar

     4.  Run all tests in the current source tree:

	   dune runtest

     5.  Install all components defined in the project:

	   dune install

     6.  Remove all build artefacts:

	   dune clean

Dune n/a								 DUNE(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=dune&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help