commit bc76c9a
shrub900
·
2026-04-20 21:28:55 +0000 UTC
parent 6d98fd5
readme update
1 files changed,
+12,
-11
M
README
M
README
+12,
-11
1@@ -1,21 +1,22 @@
2 shinobi
3 -------
4
5-shinobi is a compiler for makefiles. it parses, expands, and generates
6-build graphs. the graph can then be used to emit some backend. right
7-now there is two backends, ninja (for actually building stuff) and
8-graphviz dot, for vizualisation.
9+shinobi is a compiler for makefiles. it parses using a line-oriented
10+parser, expands and evaluates, and generates a static build graph of
11+targets and dependencies. the graph can then be used to emit some
12+backend. right now there is three backends, ninja for actually building
13+stuff, graphviz dot for vizualisation, and compile_commands.json which
14+is helpful for clang tooling.
15
16 the end goal is to be 99% compatible with both posix and gnu style
17-makefiles. right now this is not close to being true; only a subset
18-of make grammar is supported, enough to parse very simple makefiles
19-(like this project's own makefile)
20+makefiles. right now this is somewhat far from being true; only a subset
21+of make grammar is supported, enough to parse quite a lot makefiles
22+(like this project's own makefile, and musl)
23
24 if you want to help out, there's lots to do. feel free to make a
25-contibution.
26+contibution. some high-priority tasks are listed in the TODO file.
27
28 it is implemented in C99. the perl in this repo is just the gnu make
29-test suite.
30-
31-this is public domain software
32+test suite (of which 646/3865 tests pass, at the time of writing)
33
34+this is public domain software