diff options
| author | kartofen <kartofen.mail.0@protonmail.com> | 2025-10-08 20:21:40 +0300 |
|---|---|---|
| committer | kartofen <kartofen.mail.0@protonmail.com> | 2025-10-08 20:21:40 +0300 |
| commit | bcd3391e98511f5913149b87eb8617aaaa4beb6b (patch) | |
| tree | e21a9be998a2ae9a4007b7c631c64dcb5f9b7277 /ninja.m4 | |
| parent | adcadb01becb36c79d881080d399328de051e301 (diff) | |
edit README and build extend ninja.m4
Diffstat (limited to 'ninja.m4')
| -rw-r--r-- | ninja.m4 | 29 |
1 files changed, 27 insertions, 2 deletions
@@ -1,5 +1,12 @@ divert(-1) changequote([,]) + +define([map], [ifelse([$2],,, [dnl +$1($2)[]map([$1], shift(shift($@)))dnl +])]) + +define([first], [$1 ]) + divert(0) # rules @@ -16,6 +23,14 @@ rule shared command = gcc -MD -MF $out.d $cflags -shared -fPIC $in -o $out rule m4 command = m4 $m4flags $in > $out +rule leak + command = $leak $in + +define([sbuild], [ +build $bin/$1: cc $2 + cflags = $cflags $3 +build $1: leak $bin/$1 +]) build $bin/generate-parser: cc demos/generate-parser.c cflags = $cflags -rdynamic @@ -55,18 +70,28 @@ rule lbp_parse command = $leak $bin/lbp-parser < $in build lbp_test: lbp_parse demos/sample-files/lbp-code.lbp | lbp -gbuild(from-gram, calc, demos/sample-files, lalr-table) # skeleton doesn't work +gbuild(from-gram, calc, demos/sample-files, lalr-table) rule calc_parse command = $leak $bin/calc-parser 5+3 build calc_test: calc_parse | calc +define([standalone_table], [ +[util-tables, util-tables.c, -D_UTIL_TABLES_STANDALONE], +[slr-table, slr-table.c, -D_SLR_TABLE_STANDALONE], +[clr-table, clr-table.c, -D_CLR_TABLE_STANDALONE], +[lalr-table, clr-table.c, -D_CLR_TABLE_STANDALONE -D_LAZY_LALR], +[lr-parser, lr-parser.c, -D_LR_PARSER_STANDALONE]]) + +map([sbuild], standalone_table) + # targets rule ninja_clean command = ninja -t clean build clean: ninja_clean -default lbp_test +# default map([first], standalone_table) +default calc_test # regeneration |
