3. Command Reference

JHBuild uses a command line syntax similar to tools like CVS:

jhbuild [global-options] command [command-arguments]

The global jhbuild options are:

-f, --file config

Use an alternative configuration file, instead of the default ~/.jhbuildrc.

-m, --moduleset moduleset

Use a module set other than the one listed in the configuration file.

Command specific options are listed below.

3.1. bootstrap

The bootstrap command is used to install a set of build utilities required to build most modules (eg. autoconf, automake, etc).

jhbuild bootstrap

Internally bootstrap is implemented using the same code as build, using the bootstrap.modules moduleset.

3.2. build

The build command is used to build one or more packages, including their dependencies.

jhbuild build [--autogen] [--clean] [--no-network] [--skip=module...] [--start-at=module] [-D date] [module...]

If no module names are given on the command line, then the module list found in the configuration file will be used.

-a, --autogen

Always run autogen.sh before building modules. By default, autogen.sh will only be called if the toplevel makefile is missing. Otherwise, it relies on the package's makefiles to detect if configure needs to be rebuilt or rerun.

-c, --clean

Run make clean before building modules.

-n, --no-network

Do not access the network when building modules. This will skip download or update stages in a build. If a module can't be built without network access, it will fail.

-s, --skip=module,...

Ignore the named modules when following dependencies to expand the list of modules to be built.

-t, --start-at=module

After expanding the list of modules to build, start at the named module rather than at the beginning of the list. This is useful if the build was interrupted for some reason.

-D date

If the underlying version control system supports it, try to update the source tree to its state at the given date before building. The date string should be in ISO format.

3.3. buildone

The buildone command is similar to build, but it does not use dependency information to expand the module list. It is useful for quickly rebuilding one or more modules.

jhbuild buildone [--autogen] [--clean] [--no-network] [-D date] module...

The --autogen, --clean, --no-network and -D options are processed the same as for build.

Unlike build, at least one module must be listed on the command line.

3.4. dot

The dot command generates a file describing the directed graph formed by the dependencies between a set of modules. This file can then be processed using the GraphViz software to produce a nice diagram.

jhbuild dot [module...]

If no module names are given on the command line, then the module list found in the configuration file will be used.

The output of this command can easily be piped to the dot utility to generate a postscript file:

$ jhbuild dot modules | dot -Tps > dependencies.ps

3.5. info

The info command is used to display information about one or more modules.

jhbuild info module...

The command prints the module name, type, dependencies, dependent packages, and the time it was last installed with JHBuild. It may also print some information specific to the module type, such as the CVS repository or download URL.

3.6. list

The list command is used to show the expanded list of modules the build command would build.

jhbuild list [--show-revision] [module...]

If no module names are given on the command line, then the module list found in the configuration file will be used.

-r, --show-revision

If a particular module is being checked out on a branch, show the branch tag name with the module name.

3.7. run

The run command is used to run an arbitrary command using the same environment as JHBuild uses when building modules.

jhbuild run program [argument...]

If using JHBuild to build Gnome, this command can be useful in X startup scripts.

3.8. sanitycheck

The sanitycheck command performs a number of checks to see whether the build environment is okay.

jhbuild sanitycheck

Some of the checks include:

3.9. shell

The shell command starts the user's shell with the same environment as JHBuild uses when building modules.

jhbuild shell

This command is roughly equivalent to the following:

$ jhbuild run $SHELL

3.10. tinderbox

The tinderbox command is similar to build, but writes all terminal output to HTML files suitable for publishing on a website. It can be used to set up systems similar to Mozilla's Tinderbox, or Debian's Buildd.

jhbuild tinderbox [--autogen] [--clean] [--no-network] [--output=directory] [--skip=module...] [--start-at=module] [-D date] [module...]

The --autogen, --clean, --no-network, --skip, --start-at and -D options are processed the same as for build.

-o, --output=directory

The directory to write the HTML build logs.

3.11. update

The update command is similar to build, but only performs the download or update stage for modules without building them.

jhbuild update [--skip=module...] [--start-at=module] [-D date] [module...]

The --skip, --start-at and -D options are processed the same as for build.

3.12. updateone

The updateone command is similar to update, but it does not use dependency information to expand the module list. It is useful for quickly updating one or more modules.

jhbuild updateone [-D date] module...

The -D option is processed the same as for update.

Unlike update, at least one module must be listed on the command line.