JHBuild uses a command line syntax similar to tools like CVS:
jhbuild [global-options] command [command-arguments]
The global jhbuild options are:
Use an alternative configuration file, instead of the default ~/.jhbuildrc.
Use a module set other than the one listed in the configuration file.
Command specific options are listed below.
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.
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.
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.
Run make clean before building modules.
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.
Ignore the named modules when following dependencies to expand the list of modules to be built.
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.
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.
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.
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
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.
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.
If a particular module is being checked out on a branch, show the branch tag name with the module name.
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.
The sanitycheck command performs a number of checks to see whether the build environment is okay.
jhbuild sanitycheck
Some of the checks include:
That the checkout and install prefixes are writable.
That some of the required build tools are installed.
That some commonly used macros are available in the search paths of the aclocal commands associated with the various versions of automake.
That the XML catalog contains the DocBook DTD and stylesheets.
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
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.
The directory to write the HTML build logs.
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.
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.