Ninja: A simple way to do builds
For comparison, here’s a makefile for the trivial example (though you’ll have to fix the indentation):<p><pre><code>  all: $(patsubst ${things_to_convert},%.svg,%.pdf)

  %.pdf: %.svg
      inkscape $&lt; --export-text-to-path --export-pdf=$@
</code></pre>
${things_to_convert} is left undefined, as in the source article. It might be something like $(wildcard [STAR].svg) or $(shell find src -name &#x27;[STAR].svg&#x27;). [Turn each [STAR] into *; HN formatting idiosyncrasies are in play.]<p>I like makefiles in substantial part because there’s a very high probability of Make already being installed. I’m comfortable enough with them that I didn’t need to look anything up to write any of what I wrote above. It’s a bit of a pity about the sigils; though would people really find $first_prerequisite and $target better than $&lt; and $@? No idea. Ninja uses $in and $out, but it’s simpler in a way that lets it reasonably get away with that. Make, on the other hand, is complex in a way that is pretty powerful if you know what you’re doing, but generally more manual (e.g. Ninja looks like it tracks dependencies roughly automatically, whereas dependencies are manual in Make, as many have found to their sorrow) and it makes it fairly easy to shoot yourself in the foot if you do the wrong thing, which is easy to do if you’re not expert, which not many are.