[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