>>>> 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. _______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
