[Slackbuilds-users] some SlackBuilds not respecting $MAKEFLAGS

fsLeg fsleg at t-rg.ws
Wed Mar 11 10:10:57 UTC 2026


A few thing to note.

1. There are more build systems than GNU Make. Why would they respect a variable for something they are not?

2. The only way a SlackBuild may not respect a MAKEFLAGS variable is if the maintainer explicitly specified some make flags for no good reason. Everything else should be addressed upstream.

3. The change that switched building NodeJS from Make to Ninja was made by Willy nearly 4.5 years ago [1]. I just took his script, applied a patch and bumped a version number. AFAIK, you are the first one to complain in all this time.

4. Ninja being too greedy for resources isn't something new ([2], [3], [4], [5], [6]). People have been complaining for years, but the developers keep saying "it's not us, it's you" and telling you to just write a wrapper script or use some other workaround [7]. Alternatively, ninja claims to support GNU Make's job server [8] by parsing MAKEFLAGS and checking for "--jobserver-auth=fifo:<PATH>" [9]. So try adding that to your MAKEFLAGS.

5. NodeJS claims that setting "-j" flag for make should limit the amount of jobs for ninja [10]. If it doesn't, it's a bug in NodeJS's building process.

6. Ninja only checks two environment variables: NINJA_STATUS and MAKEFLAGS. The former controls how output is presented, the latter is only parsed for job server info [11]. There are no NINJAFLAGS or anything like that, those are workarounds in place in some projects and build environments [12].

7. I can switch from Ninja to good ol' GNU Make, but who knows if it won't be deprecated upstream at some point. This will also make compilation time for NodeJS unbearably long on systems with no MAKEFLAGS exported (pretty sure that's the majority) as make only uses one job by default.

8. Feel free to submit nodejs22-bin. But it won't help with sbotools, since SBo scripts have nodejs22 listed as a dependency, not nodejs22-bin, and SBo doesn't support alternative dependencies. You can write a SlackBuild that repackages a pre-built binary and put it as a local override for nodejs22.

---

[1]: https://git.slackbuilds.org/slackbuilds/commit/?id=251f339ebdd962a7e75f18df0fe518834f8578ea
[2]: https://github.com/sagemath/sage/issues/38950
[3]: https://github.com/ninja-build/ninja/issues/797
[4]: https://github.com/mesonbuild/meson-python/issues/205
[5]: https://github.com/ninja-build/ninja/issues/1482
[6]: https://github.com/ninja-build/ninja/issues/1441
[7]: https://github.com/ninja-build/ninja/issues/1482#issuecomment-433874933
[8]: https://www.gnu.org/software/make/manual/html_node/Job-Slots.html
[9]: https://ninja-build.org/manual.html#_gnu_jobserver_support
[10]: https://github.com/nodejs/node/blob/v22.x/doc/contributing/building-node-with-ninja.md#building-nodejs-with-ninja
[11]: https://ninja-build.org/manual.html#_environment_variables
[12]: https://bbs.archlinux.org/viewtopic.php?id=246007

On March 11, 2026 04:36:52 GMT+03:00, David Chmelik <dchmelik at gmail.com> wrote:
>Some SlackBuilds aren't respecting $MAKEFLAGS!  Ran a large 'queue' (weekly update of 200+ of about 1500+ installed, dependencies, rebuilds... sbocheck notifies of updates for bumps, objects, Perl, Python, Ruby, etc.) like  'MAKEFLAGS=-j1 sboupgrade <packages>' only for soon everything in X Window System (XFCE) to grind to a halt: ran out of RAM, and gcc/cc1plus running 32 jobs!  I double-checked another day; happened at least two or three times.  Hard to tell which but seems it was using ninja, and (after being forced to SSH in as root to kill sboupgrade) most recently modified were /tmp/SBo/*node*22*.  Are other arguments/flags/switches necessary like $MAKEFLAGS?  I don't know why nodejs would do this, but may not be the only SlackBuild not respecting $MAKEFLAGS.
>        I don't use nodejs22 personally, but it's a dependency of several SlackBuilds, and for several years has been halting sbopkg/sboinstall/sboupgrade due to running out of RAM (if I forget to set MAKEFLAGS=-j4, which slows down everything else that almost all finishes in good time with MAKEFLAGS=-j32) .
>        It'd be nice if each SlackBuilds.org nodejs had a binary version, and anything else needing high-end server-/workstation-size RAM like this which most people may not have... nodejs eats my 72/128 GB that procps detects (kernel detects all) plus 44+ GB swap memory and increasing.  A few other large/similar ones I recall taking a large amount of time and possibly RAM are google-go-lang, pandoc (thanks for pandoc-bin), some newer wxwidgets... other people can probably think of a few more.  Really most/all the rest should have binaries also even if they respect $MAKEFLAGS.


More information about the SlackBuilds-users mailing list