diff options
| author | Michael Forney <mforney@mforney.org> | 2017-09-17 00:03:34 -0700 |
|---|---|---|
| committer | Michael Forney <mforney@mforney.org> | 2017-09-25 19:23:06 -0700 |
| commit | ba94a8513d9a0aadb3f2c834c74b64aa644c61e8 (patch) | |
| tree | 48ac6c85baa7b9d960b9e1e726a906e61ca60967 /pkg/awk/gen.lua | |
| parent | cb362b531d79708a259bbf070dee5104fd63df08 (diff) | |
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/awk/gen.lua')
| -rw-r--r-- | pkg/awk/gen.lua | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/pkg/awk/gen.lua b/pkg/awk/gen.lua new file mode 100644 index 00000000..cbb7e9e7 --- /dev/null +++ b/pkg/awk/gen.lua @@ -0,0 +1,29 @@ +cflags{ + '-std=c90', + '-D _POSIX_C_SOURCE=200809L', + '-I $outdir', + '-I $srcdir', +} + +yacc('gram', 'awkgram.y') +build('copy', '$outdir/ytab.h', '$outdir/gram.tab.h') + +pkg.deps = {'$outdir/ytab.h'} + +sub('tools.ninja', function() + toolchain 'host' + cflags{'-I $outdir'} + exe('maketab', {'maketab.c'}) +end) + +rule('maketab', '(cd $outdir && ./maketab) >$out.tmp && mv $out.tmp $out') +build('maketab', '$outdir/proctab.c', {'|', '$outdir/maketab', '$outdir/ytab.h'}) + +exe('awk', [[ + b.c main.c parse.c tran.c lib.c run.c lex.c + $outdir/(gram.tab.c proctab.c) +]]) +file('bin/awk', '755', '$outdir/awk') +man{'awk.1'} + +fetch 'git' |
