# m3build command line options

The syntax for invoking m3build, within a package directory, is

         m3build [options] [target ...]

If no target is specified, all is assumed. It causes the specified program or library to be built. The only other target that is supported in all `m3makefiles` is clean which removes any derived files created by m3build all.

The following options are interpreted by `m3build`.

-b dir
  Use the `dir` configuration and build in the directory named `dir`. The default build directory is configured into `m3build` when it is installed.
-d dir
  Change the current directory to `dir` before doing anything. This option is most useful when you're editing in the `src` subdirectory and compile command you need is `m3build -d ..`.
-F file
  Read the quake code in `file` before the package `m3makefile`.
-T dir
  Read templates from `dir` instead of the default location. The new directory must include the full set of templates (e.g. `COMMON`, `PLATFORMS`, ...).
-S
  Generate derived objects regardless of the current directory's name. Normally, if the current working directory is `src`, `m3build` will refuse to build derived objects.
-O
  Read the `m3overrides` file if present.
-Dname=value
  Bind the `value` to `name` before reading the `m3makefile`.