On Sun, Aug 12, 2018 at 03:58:29PM +0100, ra...@airmail.cc wrote: > Hello! > > This post is an announcement releasing makes version 2.0. > > makes is a minimal build tool that cleanly separates the user interface from > the core algorithm that actually performs the build. It supports > incremental, parallel builds with dependency resolution. > > makes takes on standard input a tab separated values stream of 'build rules' > with the following format: <output> \t <input-1> \t ... -- <build command>. > These TSV build scripts can be generated using a shell script, python > script, a new build UI tool, anything. > > The tool has been proven by building jq and sbase with it. It can also be > seen as a generalization of gnu parallel, sabotage jobflow this was tested > by converting a directory tree of flacs to mp3s. > > The repo is here: https://github.com/rain-1/makes > and some example uses can be found here: > https://gist.github.com/rain-1/f3434f4b12147d5ef62369e511a184de > > Justification for a new build tool: makes improves upon POSIX make and other > build systems like waf, cmake, meson etc. in several ways. Unlike make it > does not require reimplementation of an incompatible version of shell > language. It is also implemented in 1/1000th the amount of code. Unlike make > which tries to do everything and falls short (resulting in stuff like > automake, autoconf, ./configure, etc.), it fulfills the UNIX philosophy of > doing one thing well by separating concerns. By using an incredible simple > TSV input format it gives programmers complete freedom and power to specify > builds using any toolkit they wish, m4, shell, python. >
This looks like a ninja (or samurai) replacement, not really a make one. Looks nice, but when reading your examples, you use #!/bin/sh with stuff like arrays, you should set to something more approriate.