1
0
Fork
You've already forked shinobi
0
forked from derivelinux/shinobi
makefile compiler
  • Perl 73.8%
  • C 23.6%
  • DIGITAL Command Language 1.5%
  • Shell 0.9%
  • Makefile 0.1%
  • Other 0.1%
2026年04月28日 16:45:00 +00:00
backends
cli
src
tests
.clang-format
.gitignore
COPYING
Makefile
README
TODO

shinobi
-------
shinobi is a compiler for makefiles. it parses using a line-oriented
parser, expands and evaluates, and generates a static build graph of 
targets and dependencies. the graph can then be used to emit some 
backend. right now there is three backends, ninja for actually building 
stuff, graphviz dot for vizualisation, and compile_commands.json which
is helpful for clang tooling.
the end goal is to be 99% compatible with both posix and gnu style
makefiles. right now this is somewhat far from being true; only a subset 
of make grammar is supported, enough to parse quite a lot of makefiles
(like this project's own makefile, and musl)
if you want to help out, there's lots to do. feel free to make a 
contibution. some high-priority tasks are listed in the TODO file.
it is implemented in C99. the perl in this repo is just the gnu make 
test suite (of which 1960/3865 tests pass, at the time of writing)
this is public domain software