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%
| 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