[Toybox] Toybox Installer/setup routine?

Denys Nykula nykula at ukr.net
Thu Oct 31 09:56:35 PDT 2019


>>>> ninja's a lot more widely used than you seem to think, but the mistake
>>>> is that you're considering it to be a replacement for make. it's not:
>>>> it's a replacement for make's back-end. so cmake, for example, can use
>>>> ninja now, and every cmake-using project may well be using ninja

Cmake isn't make, cmake is autotools. What you call make is autotools.
What you call make's back-end is make.

>> make or cmake or xcbuild or msbuild or gradle or
>> meson or whatever.
>>
>> https://ninja-build.org/manual.html talks about this more.

Out of these, only make and ninja are make, the rest are autotools flavors
built on top of them. Ninja is simply a custom makefile syntax, their
manual says this, though not very clearly:

---

> Ninja is closest in spirit and functionality to Make
> But fundamentally, make has a lot of features
> In contrast, Ninja has almost no features
> Here are some of the features Ninja adds to Make

:D

> Some explicit non-goals:
>   * build-time decision-making ability such as conditionals or search paths.

> Ninja has special support for discovering extra dependencies at build
> time

Etc.

---

> Many moons ago (2008? Yeah, https://landley.net/notes-2008.html#18-12-2008
> around then) Mark and I designed a cluster build system that would take a distro
> repository with dependencies between packages and and install it into a shared
> network filesystem. You'd have a master node in the cluster with write access to
> the shared filesystem, and it would would tell the other nodes "here's the next
> package to build" and they'd do so relative to their read-only copy of that
> filesystem (which had all the prerequisites for that package already installed).
> It would build the binary (.rpm or .deb or...) for that package and send it back
> to the master node, which would install it into the network filesystem and send
> out the next thing to build.

Pkgsrc has each cluster node output package tarballs, look at
mk/pbulk and pkgtools/pbulk/*/* in its repo.

Its tools are written in C and makefiles, which include other makefiles
(config is .mk too, like .h for C app) and recurse to the build tool of
each package.



More information about the Toybox mailing list