main
138 commits
c493683
shrub  ·  2026-06-12
main
avoid rebuilding clean pre eixsting outputs on first run in ninja backend
1dbb521
shrub  ·  2026-05-30
fix subgraph target with no recipe emission and fix pattern/suffix rule precendence, add new test
32cdfd6
shrub  ·  2026-05-25
pattern rules, static pattern rules, and some export things
a076350
shrub  ·  2026-05-19
pattern macros in substitution references are not allowed in posix 2008
1c4d5c7
shrub  ·  2026-05-19
move include gating to preproc and parse time
c6bde0a
shrub  ·  2026-05-18
make dashed targets in graphviz less lenient
d953691
shrub  ·  2026-05-18
small improvements to graphviz
9d065ad
shrub  ·  2026-05-18
C/FFLAGS fix in posix mode
ba30878
shrub  ·  2026-05-18
curdir is not allowed in posix 2008
23c6f88
shrub  ·  2026-05-18
move implcit rules and var seeding to a new file; make default vars more posix compliant
c74e668
shrub  ·  2026-05-18
update manpage; fix function error message when not in gnu mode
b508dcb
shrub  ·  2026-05-18
make posix modes more compliant
805b3a3
xplshn  ·  2026-05-17
Gating mechanism

Signed-off-by: xplshn <anto@xplshn.com.ar>
49f886f
shrub900  ·  2026-05-18
Update TODO
db1efaa
shrub  ·  2026-05-16
handle glob include
11f2e54
shrub  ·  2026-05-15
handle remaking includes
2eb5b83
shrub  ·  2026-05-15
normalize recipe bodies before emission
a0759f6
shrub  ·  2026-05-15
fix some kati tests
2536dc6
shrub  ·  2026-05-15
propogate stderr/stout properly in runner, wrapper fixes, and misc error plumbing and fixes
3ce4bce
shrub  ·  2026-05-15
more test fixes
dcccc2d
shrub  ·  2026-05-14
fix some tests depending on old perl
fdf51cc
shrub  ·  2026-05-14
add pass percentage to the runner
fa3993a
shrub  ·  2026-05-14
eval: correctly expand substitution refs on automatic vars and add test for it
ab67d72
shrub900  ·  2026-05-14
update todos
d015669
shrub  ·  2026-05-14
add manpage, rename compcmd to compdb
5342b50
shrub  ·  2026-05-14
clean
3e5c398
shrub  ·  2026-05-14
readme
b483835
shrub  ·  2026-05-14
handle .DEFAULT, add 1 new test
9782164
shrub  ·  2026-05-14
handle :::= properly. stop translating automatic variables in the backend
77fb0bd
shrub  ·  2026-05-14
fix some prefix stripping and lhs assignment edge cases
12b8673
shrub  ·  2026-05-13
some more tests
f5d60f2
shrub  ·  2026-05-13
new fast parallel test runner in go + kati/pdpmake test suites
d2b6fd3
shrub900  ·  2026-05-13
update todo
5515bb4
shrub900  ·  2026-05-13
readme
884b91f
shrub  ·  2026-05-13
fix suffix rule chaining and diffrentiate between implcitly inferred and explicit prereqs
4aa3f55
afiw  ·  2026-05-12
abspath, realpath
4de1ba7
shrub  ·  2026-05-12
curdir
2589e57
shrub  ·  2026-05-11
dont add .suffixes to graph and make graphviz output match ninja -t graph which i think looks nicer
6a164df
shrub  ·  2026-05-06
readme & todo
548180b
shrub  ·  2026-05-06
fix variable expansion when it looks like a function by checking against an actual list
a98ab69
shrub  ·  2026-05-06
handle 'export var' and fix test wrapper regression
75ca578
shrub  ·  2026-05-05
tighten recursive make parsing and emission, make ninja backend a little prettier
d2e2d0c
shrub  ·  2026-05-05
.PHONY fix for graphs with multiple subgraphs + die faster and consistently
5519266
shrub  ·  2026-05-05
handle .PHONY
fd3a8d1
shrub  ·  2026-05-05
handle [], fix auto var handling in function expansion, dedup $^
d304126
shrub  ·  2026-05-04
allow target specific += assigns to be inhereted by prereqs even when prereqs were created earlier in the graph, +600ish test passes
38b7f57
shrub  ·  2026-05-04
implement !=
1beb2a2
shrub  ·  2026-04-30
add header to generated ninja
c2cab90
shrub900  ·  2026-04-30
todo
e8e8cd5
shrub  ·  2026-04-29
Merge pull request 'use conditional assignment, move -I flags to CPPFLAGS' (#5) from uint23/shinobi:mac-fixes into main

Reviewed-on: https://codeberg.org/derivelinux/shinobi/pulls/5
49eb863
uint  ·  2026-04-29
use cc instead of clang, move -I flags to CPPFLAGS
d7b5611
shrub  ·  2026-04-28
detect recursive submake
4d9df5a
shrub  ·  2026-04-28
fix subgraph ownership being too strict
56bb02d
shrub  ·  2026-04-28
make assign realloc safe and free fullpath on failiure in main.c : use arenas for submake stack
5c285d7
shrub  ·  2026-04-28
define builtins in a less stupid way like pdpmake
5043282
shrub  ·  2026-04-28
functions/foreach: fix temp var restore and interned name ownership issue
ce959b5
xplshn  ·  2026-04-28
new memory model & intern table

Signed-off-by: xplshn <anto@xplshn.com.ar>
09f3b9c
shrub  ·  2026-04-27
fix dollar expansion, env leak in pattern rules, and make implicit rules gnuish (cppflags)
69981b3
shrub  ·  2026-04-24
fix
e886da2
shrub  ·  2026-04-24
seed cli assigns and env override before makefile evaluation (+1080 test passes)
4a88c5b
shrub  ·  2026-04-24
error better and makefile portability
bd8ad09
shrub  ·  2026-04-23
error more like make to get more test passes
a999e66
shrub  ·  2026-04-23
make sure only the chosen branch's recipes end up on the target in condional cases
bb32398
shrub  ·  2026-04-23
allow ::= and :::=
3b8c14a
shrub900  ·  2026-04-22
Update TODO
ba037f2
shrub  ·  2026-04-22
handle join, value, export
0cd474b
shrub  ·  2026-04-22
update test pass number
ed627ac
shrub  ·  2026-04-22
update todo file
d283034
shrub  ·  2026-04-22
handle recipeprefix and posix targets
f57d326
shrub  ·  2026-04-21
handle origin
1e4639b
shrub  ·  2026-04-21
add define and endef stipport, make variable name expansion more dynamic.  make subgraph expansion more robust, and subninja emission more robust, seed default ranlib variable
ec04fe8
shrub  ·  2026-04-21
handle foreach strip and findstring funcs
5ff05ee
shrub  ·  2026-04-21
handle # \ comment continuations that bearssl uses and evaluate include nodes when we need too
32a97b4
shrub900  ·  2026-04-20
grammar
bc76c9a
shrub900  ·  2026-04-20
readme update
6d98fd5
shrub  ·  2026-04-20
add some things to the todo file
8122e9d
shrub  ·  2026-04-20
get more tests passing by emulating gmake semantics better (+112)
1c839f6
shrub  ·  2026-04-20
format
4f51eb3
shrub  ·  2026-04-20
keep target env so we can do lazy recipe expansion, and lower info into proper ninja commands. also some wrapper plumbing to preserve gmake semantics. +380 test passes
088da53
shrub  ·  2026-04-20
handle recursive make invocations
2fadeb0
shrub  ·  2026-04-20
parse (but dont handle) recursive make
67e2bc0
shrub  ·  2026-04-17
implement call and eval
23ba302
shrub  ·  2026-04-17
+12 new test passes, conditional stuff, handle override, and sinclude + misc
f1aa24f
shrub  ·  2026-04-16
add backend for compile_commands.json and -G flag to choose backend
dd4e574
shrub  ·  2026-04-16
stop handling @-+ in the backend and store metadata for them instead of just stripping
427bbfc
shrub  ·  2026-04-16
make eval produce a ruleset instead of another ast to simplify graph construction
d34ce1a
shrub  ·  2026-04-16
make eval state less shitty
edddaa3
shrub  ·  2026-04-16
handle double colon
30eeafb
shrub  ·  2026-04-15
handle implicit suffix rules and .SUFFIXES and key=val assigns on cli
b28bd5e
shrub  ·  2026-04-15
fix -C -f and add -f to usage
40bf5eb
shrub  ·  2026-04-15
Merge pull request 'improve -C and add -f function' (#4) from oou/shinobi-chld:main into main

Reviewed-on: https://codeberg.org/derivelinux/shinobi/pulls/4
9ba3775
chld  ·  2026-04-14
usage if unexpected argv passed
d9d177d
chld  ·  2026-04-14
why did i check i+1 after using it? but add chdir check
6970a96
chld  ·  2026-04-14
be safe while parsing argv
a9b52f6
chld  ·  2026-04-14
add a -f argument
c248dd4
chld  ·  2026-04-14
clean up code
661e133
chld  ·  2026-04-14
working state, the feature is implemented
208f9d5
chld  ·  2026-04-14
some mechanism, didnt test
2b3b447
shrub900  ·  2026-04-13
revert 0f2fdc58ecc8594f655fb4de1ded012a3c9f4384

revert a more descriptive usage function
05007e1
shrub900  ·  2026-04-13
revert ecea3e3f32d55150d8eba5f152227216c5770906

revert improve readme
0f2fdc5
chld  ·  2026-04-13
a more descriptive usage function
ecea3e3
chld  ·  2026-04-13
improve readme
8d5eed2
shrub  ·  2026-04-13
handle words functions and inline rule
fb0930a
shrub900  ·  2026-04-13
COPYING: tests are actually gplv2
cdc2e1b
shrub  ·  2026-04-13
update cli options
8fea012
shrub  ·  2026-04-13
fix @ strpping, make dot reset when we see a / in basename (+6 test passes)
5372723
chld  ·  2026-04-13
add chdir argument flag
cde0ae1
shrub  ·  2026-04-12
Merge branch 'xplshn-main'
81a73c9
xplshn  ·  2026-04-12
fix evalnodes, cleanrecipe & expandsubstref, they weren't parsing backslashes properly and were dropping args, added gnu/functions: patsubst, if, subst, basename, dir, notdir

Signed-off-by: xplshn <anto@xplshn.com.ar>
2d98333
shrub  ·  2026-04-12
be less picky about rule lookup for targets, make sure default sufrules can be overridden, make instsufrule resolve the inferred source not the explicit
cb7ea0c
shrub900  ·  2026-04-12
readme update
66046eb
shrub  ·  2026-04-12
graphviz backend
f12acb7
shrub  ·  2026-04-12
make test printouts slighly prettier
3997951
shrub  ·  2026-04-12
split eval into two files and make expandstr not be a huge monolithic function, handle addsuffix and sort, check viability of pattern rule
3ff2026
shrub  ·  2026-04-12
make filter-out tests pass
3165e81
shrub  ·  2026-04-12
make 2 tests pass (comments, addprefix) by fixing := parsing and ninja quiet mode
34dcc2a
shrub  ·  2026-04-12
add placeholder for tests to run
e7c76d3
shrub  ·  2026-04-12
organise a bit and add single-suffix rule handling
91483b0
shrub  ·  2026-04-09
handle info, filter-out, addprefix, @
110cfec
shrub  ·  2026-04-09
better automatic var translation
816afea
shrub  ·  2026-04-09
simplify ninja backend (no rule dedup) and add suffix handling
60073bc
shrub900  ·  2026-04-08
gitignore
699ba2d
chld  ·  2026-04-08
gitignore
9dae250
shrub  ·  2026-04-08
tests target makefile
b15e5de
shrub900  ·  2026-04-08
Update README
e971b8e
shrub  ·  2026-04-08
license and gnu make test suite
44ed1ac
shrub  ·  2026-04-08
shell and filter support
b1a8a94
shrub  ·  2026-04-08
add targ-specific assingments and cli ops to dump ast/graph
59a6db8
shrub  ·  2026-04-08
feat: handle  $< $^ $+ 127
757e0ed
shrub  ·  2026-04-08
fail-fast and add wildcard support
33a080f
shrub900  ·  2026-04-08
Update readme
90228d3
shrub  ·  2026-04-08
dont emit a rule for every target and emit default and phony rules
c353699
xplshn  ·  2026-04-08
reorganize, added dep graph & ninja backend

Signed-off-by: xplshn <anto@xplshn.com.ar>
de8d436
shrub  ·  2026-04-07
split files
bcdf49f
shrub  ·  2026-04-07
feat: substitutions
248e4cc
shrub  ·  2026-04-07
feat: cond block handling
b427801
shrub  ·  2026-04-07
feat: eval pass with simple var expansion
133667f
shrub  ·  2026-04-07
initial