Skip to content

Commit c1bb041

Browse files
edsadrtargos
authored andcommitted
doc: update Ninja information in build guide
PR-URL: #32629 Reviewed-By: Sam Roberts <[email protected]> Reviewed-By: Anna Henningsen <[email protected]> Reviewed-By: Rich Trott <[email protected]> Reviewed-By: Jiawen Geng <[email protected]>
1 parent d779980 commit c1bb041

File tree

1 file changed

+18
-23
lines changed

1 file changed

+18
-23
lines changed

doc/guides/building-node-with-ninja.md

+18-23
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ The purpose of this guide is to show how to build Node.js using [Ninja][], as
44
doing so can be significantly quicker than using `make`. Please see
55
[Ninja's site][Ninja] for installation instructions (Unix only).
66

7-
To build Node.js with ninja, there are 3 steps that must be taken:
7+
[Ninja][] is supported in the Makefile. Run `./configure --ninja` to configure
8+
the project to run the regular `make` commands with Ninja.
89

9-
1. Configure the project's OS-based build rules via `./configure --ninja`.
10-
2. Run `ninja -C out/Release` to produce a compiled release binary.
11-
3. Lastly, make symlink to `./node` using `ln -fs out/Release/node node`.
10+
For example, `make` will execute `ninja -C out/Release` internally
11+
to produce a compiled release binary, It will also execute
12+
`ln -fs out/Release/node node`, so that you can execute `./node` at
13+
the project's root.
1214

13-
When running `ninja -C out/Release` you will see output similar to the following
15+
When running `make`, you will see output similar to the following
1416
if the build has succeeded:
1517

1618
```txt
@@ -22,27 +24,20 @@ The bottom line will change while building, showing the progress as
2224
`[finished/total]` build steps. This is useful output that `make` does not
2325
produce and is one of the benefits of using Ninja. Also, Ninja will likely
2426
compile much faster than even `make -j4` (or
25-
`-j<number of processor threads on your machine>`).
27+
`-j<number of processor threads on your machine>`). You can still pass the
28+
number of processes to run for [Ninja][] using the environment variable `JOBS`.
29+
This will be the equivalent to the `-j` parameter in the regular `make`:
2630

27-
## Considerations
28-
29-
Ninja builds vary slightly from `make` builds. If you wish to run `make test`
30-
after, `make` will likely still need to rebuild some amount of Node.js.
31-
32-
As such, if you wish to run the tests, it can be helpful to invoke the test
33-
runner directly, like so:
34-
`tools/test.py --mode=release message parallel sequential -J`
35-
36-
## Alias
37-
38-
`alias nnode='./configure --ninja && ninja -C out/Release && ln -fs
39-
out/Release/node node'`
31+
```bash
32+
$ JOBS=12 make
33+
```
4034

4135
## Producing a debug build
4236

43-
The above alias can be modified slightly to produce a debug build, rather than a
44-
release build as shown below:
45-
`alias nnodedebug='./configure --ninja && ninja -C out/Debug && ln -fs
46-
out/Debug/node node_g'`
37+
To create a debug build rather than a release build:
38+
39+
```bash
40+
$ ./configure --ninja --debug && make
41+
```
4742

4843
[Ninja]: https://ninja-build.org/

0 commit comments

Comments
 (0)