From b97518595f87fefb43397435533b71ce5a064fa0 Mon Sep 17 00:00:00 2001 From: Adrian Estrada Date: Mon, 6 Apr 2020 12:50:20 -0500 Subject: [PATCH] doc: updating Ninja guide --- doc/guides/building-node-with-ninja.md | 41 +++++++++++--------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/doc/guides/building-node-with-ninja.md b/doc/guides/building-node-with-ninja.md index 7a14d9e9c97f32..b4b36f76c6acb2 100644 --- a/doc/guides/building-node-with-ninja.md +++ b/doc/guides/building-node-with-ninja.md @@ -4,13 +4,15 @@ The purpose of this guide is to show how to build Node.js using [Ninja][], as doing so can be significantly quicker than using `make`. Please see [Ninja's site][Ninja] for installation instructions (Unix only). -To build Node.js with ninja, there are 3 steps that must be taken: +[Ninja][] is supported in the Makefile. Run `./configure --ninja` to configure +the project to run the regular `make` commands with Ninja. -1. Configure the project's OS-based build rules via `./configure --ninja`. -2. Run `ninja -C out/Release` to produce a compiled release binary. -3. Lastly, make symlink to `./node` using `ln -fs out/Release/node node`. +For example, `make` will execute `ninja -C out/Release` internally +to produce a compiled release binary, It will also execute +`ln -fs out/Release/node node`, so that you can execute `./node` at +the project's root. -When running `ninja -C out/Release` you will see output similar to the following +When running `make`, you will see output similar to the following if the build has succeeded: ```txt @@ -22,27 +24,20 @@ The bottom line will change while building, showing the progress as `[finished/total]` build steps. This is useful output that `make` does not produce and is one of the benefits of using Ninja. Also, Ninja will likely compile much faster than even `make -j4` (or -`-j`). +`-j`). You can still pass the +number of processes to run for [Ninja][] using the environment variable `JOBS`. +This will be the equivalent to the `-j` parameter in the regular `make`: -## Considerations - -Ninja builds vary slightly from `make` builds. If you wish to run `make test` -after, `make` will likely still need to rebuild some amount of Node.js. - -As such, if you wish to run the tests, it can be helpful to invoke the test -runner directly, like so: -`tools/test.py --mode=release message parallel sequential -J` - -## Alias - -`alias nnode='./configure --ninja && ninja -C out/Release && ln -fs -out/Release/node node'` +```bash +$ JOBS=12 make +``` ## Producing a debug build -The above alias can be modified slightly to produce a debug build, rather than a -release build as shown below: -`alias nnodedebug='./configure --ninja && ninja -C out/Debug && ln -fs -out/Debug/node node_g'` +To create a debug build rather than a release build: + +```bash +$ ./configure --ninja --debug && make +``` [Ninja]: https://ninja-build.org/