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

FreeBSD Manual Pages

  
 
  

home | help
DUNECONTROL(1)		    General Commands Manual		DUNECONTROL(1)

NAME
       dunecontrol - Control program for the Dune build	system

SYNOPSIS
       dunecontrol [OPTIONS] COMMANDS [COMMAND-OPTIONS]

DESCRIPTION
       dunecontrol is the control program for the build	system of the Dune li-
       braries.

       The  Dune  libraries form a set of modules.  Each can be	built indepen-
       dently using CMake.  Additionally, though, there	are  dependencies  be-
       tween  modules,	which  are  expected to	form a directed	acyclic	graph.
       These dependencies are set in a file called  dune.module	 contained  in
       the main	directory of each Dune module.

       The dunecontrol program helps to	build sets of inter-dependent modules.
       It  allows to construct the entire dependency graph and obtain informa-
       tion about it.  Then it allows to run  various  build-related  commands
       for  all	 modules.  These are executed in the order mandated by the de-
       pendency	graph.

COMMANDS
       Colon-separated list of commands. Available commands are:

       help

	      Show a help message and exit

       print

	      Print the	list of	modules	sorted according to  their  dependency
	      relations

       info

	      Same  as	`print',  but  including whether it is a dependency or
	      suggestion

       printdeps

	      Print recursive dependencies of a	module

       vcsetup

	      Setup version control repository	(Git  etc.)  or	 working  copy
	      (SVN)

       update

	      Update  all  modules  from  the repository from their respective
	      version control systems

       configure

	      Run cmake	for each module

       make

	      Run make for each	module

       all

	      Run the 'configure' and 'make' commands for each module

       exec

	      Execute an arbitrary command in each module source directory

       bexec

	      Execute an arbitrary command in each module build	directory

       status

	      Show version control status for each module

       svn

	      Run svn command for each svn-managed module

       git

	      Run git command for each git-managed module

       export

	      Run eval `dunecontrol export` to save the	 list  of  dune.module
	      files to the DUNE_CONTROL_PATH variable

OPTIONS

       -h, --help

	      Show this	help

       --debug

	      Run with debugging output	enabled

       --module=mod

	      Apply the	actions	on module mod and all modules it depends on

       --only=mod

	      Only apply the actions on	module mod , but not on	the modules it
	      depends on

       --current

	      Only  apply  the	actions	 on  the current module, the one whose
	      source tree we are in

       --current-dep

	      Apply the	actions	on the current module, and all modules it  de-
	      pends on

       --resume

	      Resume  a	previous run (only consider the	modules	not built suc-
	      cessfully	on the previous	run)

       --skipfirst

	      Skip the first module (use with --resume)

       --skipversioncheck

	      When looking for Dune modules, do	not check  whether  they  have
	      the required versions

       --opts=file

	      Load  default options from file, for details see the section be-
	      low.

	      Instead of a command line	parameter, it is also possible to  de-
	      fine an environment variable DUNE_OPTS_FILE.

       --builddir=name

	      Make out-of-source builds	in a subdir name.

	      If  name	is  a  relative	path, this directory is	created	inside
	      each module, if it is an absolute	path, a	subdirectory for  each
	      module is	created	inside.

	      Instead  of a command line parameter, it is also possible	to de-
	      fine an environment variable DUNE_BUILDDIR  (see	below)	or  to
	      specify a	BUILDDIR variable in the opts file.

       --[COMMAND]-opts=opts

	      Set  options  for	 COMMAND  (this	is mainly useful for the 'all'
	      COMMAND)

OPTS FILE
       The options file	contains different entries to specify the build	 envi-
       ronment,	 e.g.,	which compiler to use, which options to	pass to	cmake,
       where to	build DUNE, etc.

       Variables are:

       DUNE_CONTROL_PATH

	      just as the environment variable DUNE_CONTROL_PATH, it is	possi-
	      ble to define it in the options file. For	details	 see  the  de-
	      scription	below.

       BUILDDIR=name

	      to  specify  the	build directory, just as via the command line.
	      Defining the build directory in the opts file, allows to	easily
	      switch  between  different  build	directories for	different DUNE
	      configurations.

       [COMMAND]_FLAGS=opts

	      Set options for a	specific COMMAND. In the  case	of  the	 CMAKE
	      command, e.g., this might	look like

	      CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=g++-14			  -DC-
	      MAKE_CXX_FLAGS='-fPIC -g -O3' -DFOO_PREFIX=/path/to/libfoo"

	      In case of the MAKE command, a common use	is to  enable  concur-
	      rency:

	      MAKE_FLAGS="-j4"

ENVIRONMENT VARIABLES

       DUNE_CONTROL_PATH

	      Colon-separated  list  to	specify	where dunecontrol searches for
	      Dune modules.  Entries are either	directories,  which  are  then
	      used  recursively	for dune.module	files or the user can directly
	      specify the full path to specific	dune.module files.

	      default: The default for	the  case  that	 DUNE_CONTROL_PATH  is
	      empty is to search the current directory,	its subdirectories and
	      a	system-wide installation in /usr.

       DUNE_OPTS_FILE

	      Specify  a  default  value for an	options	file, if the user does
	      not specify the --opts= parameter	on the commandline.

       DUNE_BUILDIR

	      Specify a	default	value for an build directory, if the user does
	      not specify the --builddir= parameter on the commandline.

AUTHOR
       Dune was	written	by the Dune team  (https://www.dune-project.org/commu-
       nity/people).

       This manual page	was written by Oliver Sander and Christian Engwer.

COPYRIGHT
       Copying	and  distribution  of this file, with or without modification,
       are permitted in	any medium without royalty provided the	copyright  no-
       tice  and this notice are preserved.  This file is offered as-is, with-
       out any warranty.

				January	5, 2026			DUNECONTROL(1)

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

home | help