shake

minimal build system that generates Ninja build files

git clone https://9o.is/git/shake.git

commit 9355ef0d7c4c2ee7e869f95a8bce45d14935d5ee
parent 7150ba7ee340879ddeb2af280858b59c8dba102b
Author: Jul <jul@9o.is>
Date:   Thu, 12 Mar 2026 22:01:51 +0800

prefix ninja default values from shell to awk

Diffstat:
Mshake | 3+--
Mshakeout.awk | 14++++++++++----
2 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/shake b/shake @@ -182,8 +182,7 @@ rule() { } default() { - prefix _v $dir $1 - printf 'shake:default %s\n' "$_v" + printf 'shake:default %s\n' "$*" } phony() { diff --git a/shakeout.awk b/shakeout.awk @@ -1,16 +1,21 @@ -function print_tail(start, i) { +function print_tail(start, i, ch) { for(i=start; i<=NF; i++) { - printf " %s", $i + if (prefix != "" && $i !~ /^($|.\/|\/)/) + printf " %s/%s", prefix, $i + else + printf " %s", $i } } function reset() { state = "" + prefix = "" printf "\n" } BEGIN { state = "" + prefix = "" } /^shake:build / { @@ -39,9 +44,10 @@ BEGIN { /^shake:default / { reset() - printf "default %s", $2 - print_tail(3) + printf "default" state = "inline" + prefix = "$dir" + print_tail(2) next }