ninja-compatible build tool written in C
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore Update binary path in .gitignore Jul 25, 2017
.travis.yml travis: Test on macOS too Aug 29, 2018
LICENSE Update copyright year Feb 28, 2018
Makefile Move definition of _POSIX_C_SOURCE to the files that require it Mar 18, 2018
README.md Fix mtime calculation on macOS Apr 10, 2018
arg.h Remove unused stuff from arg.h Oct 11, 2017
build.c build: Fix numfds in poll Apr 13, 2018
build.h Use size_t for maxjobs and maxfail Apr 8, 2018
build.ninja Move definition of _POSIX_C_SOURCE to the files that require it Mar 18, 2018
deps.c deps: Don't allocate large buffer on the stack Mar 18, 2018
deps.h Implement .ninja_deps parsing and updating Aug 11, 2017
env.c Replace use of search.h with our own binary search tree implementation Feb 25, 2018
env.h Replace use of search.h with our own binary search tree implementation Feb 25, 2018
graph.c Fix mtime calculation on macOS Apr 10, 2018
graph.h Store time internally as nanoseconds in an int64_t Mar 18, 2018
htab.c htab: Use size_t instead of ssize_t for value index Mar 15, 2018
htab.h htab: Specialize for string keys Feb 25, 2018
lex.c Annotate constant data as such Apr 4, 2018
lex.h lex: Use a file structure to store file lex state Jul 25, 2017
log.c log: Free line buffer when finished Mar 18, 2018
log.h Rename lognode -> logrecord Aug 11, 2017
parse.c Use a single ninja version variable Aug 29, 2018
parse.h Use a single ninja version variable Aug 29, 2018
samu.1 Add support for `-d explain` Feb 28, 2018
samurai.c Use a single ninja version variable Aug 29, 2018
tool.c Annotate constant data as such Apr 4, 2018
tool.h Annotate constant data as such Apr 4, 2018
tree.c Replace use of search.h with our own binary search tree implementation Feb 25, 2018
tree.h Replace use of search.h with our own binary search tree implementation Feb 25, 2018
util.c Move _POSIX_C_SOURCE definition to Makefile/build.ninja Aug 16, 2017
util.h Avoid err.h for POSIX conformance Aug 16, 2017

README.md

samurai

Build Status

samurai is a ninja-compatible build tool written in C99 with a focus on simplicity, speed, and portability.

Status

samurai implements the ninja build language through version 1.8.2 except for MSVC dependency handling (deps = msvc). It uses the same format for .ninja_log and .ninja_deps as ninja, currently version 5 and 3 respectively.

It is largely feature-complete and supports most of the same options as ninja.

Requirements

samurai requires various POSIX.1-2008 interfaces.