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 libraries.

The Dune libraries form a set of modules. Each can be built independently using CMake. Additionally, though, there are dependencies between 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 information about it. Then it allows to run various build-related commands for all modules. These are executed in the order mandated by the dependency 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 depends on

--resume

    Resume a previous run (only consider the modules not built successfully 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

--builddir=name

    Make out-of-source builds in a subdir name. This directory is created inside each module.

--[COMMAND]-opts=opts

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

ENVIRONMENT VARIABLES
dunecontrol looks for Dune modules in all directories given in the DUNE_CONTROL_PATH variable, and additionally recursively in all subdirectories of those directories. The default for the case that DUNE_CONTROL_PATH is empty is the current directory, plus a system-wide installation in /usr.

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

This manual page was written by Oliver Sander.

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