1# wafHook {#waf-hook} 2 3[Waf](https://waf.io) is a Python-based software building system. 4 5In Nixpkgs, `wafHook` overrides the default configure, build, and install phases. 6 7## Variables controlling wafHook {#waf-hook-variables-controlling} 8 9### `wafHook` Exclusive Variables {#waf-hook-exclusive-variables} 10 11The variables below are exclusive of `wafHook`. 12 13#### `wafPath` {#waf-path} 14 15Location of the `waf` tool. It defaults to `./waf`, to honor software projects that include it directly inside their source trees. 16 17If the file pointed by `wafPath` doesn't exist, then `waf` provided by Nixpkgs will be used. 18 19#### `wafFlags` {#waf-flags} 20 21Controls the flags passed to waf tool during build and install phases. For settings specific to build or install phases, use `wafBuildFlags` or `wafInstallFlags` respectively. 22 23#### `dontUseWafConfigure` {#dont-use-waf-configure} 24 25When set to true, don't use the predefined `wafConfigurePhase`. 26 27#### `dontUseWafBuild` {#dont-use-waf-build} 28 29When set to true, don't use the predefined `wafBuildPhase`. 30 31#### `dontUseWafInstall` {#dont-use-waf-install} 32 33When set to true, don't use the predefined `wafInstallPhase`. 34 35### Similar variables {#waf-hook-similar-variables} 36 37The following variables are similar to their `stdenv.mkDerivation` counterparts. 38 39| `wafHook` Variable | `stdenv.mkDerivation` Counterpart | 40|-----------------------|-----------------------------------| 41| `wafConfigureFlags` | `configureFlags` | 42| `wafConfigureTargets` | `configureTargets` | 43| `wafBuildFlags` | `buildFlags` | 44| `wafBuildTargets` | `buildTargets` | 45| `wafInstallFlags` | `installFlags` | 46| `wafInstallTargets` | `installTargets` | 47 48### Honored variables {#waf-hook-honored-variables} 49 50The following variables commonly used by `stdenv.mkDerivation` are honored by `wafHook`. 51 52- `prefixKey` 53- `enableParallelBuilding` 54- `enableParallelInstalling`