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 `wafPath` doesn't exist, then `wafHook` will copy the `waf` provided from Nixpkgs to it. 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#### `dontAddWafCrossFlags` {#dont-add-waf-cross-flags} 24 25When set to `true`, don't add cross compilation flags during configure phase. 26 27#### `dontUseWafConfigure` {#dont-use-waf-configure} 28 29When set to true, don't use the predefined `wafConfigurePhase`. 30 31#### `dontUseWafBuild` {#dont-use-waf-build} 32 33When set to true, don't use the predefined `wafBuildPhase`. 34 35#### `dontUseWafInstall` {#dont-use-waf-install} 36 37When set to true, don't use the predefined `wafInstallPhase`. 38 39### Similar variables {#waf-hook-similar-variables} 40 41The following variables are similar to their `stdenv.mkDerivation` counterparts. 42 43| `wafHook` Variable | `stdenv.mkDerivation` Counterpart | 44|-----------------------|-----------------------------------| 45| `wafConfigureFlags` | `configureFlags` | 46| `wafConfigureTargets` | `configureTargets` | 47| `wafBuildFlags` | `buildFlags` | 48| `wafBuildTargets` | `buildTargets` | 49| `wafInstallFlags` | `installFlags` | 50| `wafInstallTargets` | `installTargets` | 51 52### Honored variables {#waf-hook-honored-variables} 53 54The following variables commonly used by `stdenv.mkDerivation` are honored by `wafHook`. 55 56- `prefixKey` 57- `enableParallelBuilding` 58- `enableParallelInstalling`