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/mc/gen.lua | |
| parent | cb362b531d79708a259bbf070dee5104fd63df08 (diff) | |
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/mc/gen.lua')
| -rw-r--r-- | pkg/mc/gen.lua | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/pkg/mc/gen.lua b/pkg/mc/gen.lua new file mode 100644 index 00000000..ca7479ce --- /dev/null +++ b/pkg/mc/gen.lua @@ -0,0 +1,78 @@ +cflags{ + '-I $outdir', + '-I $srcdir', + '-I $srcdir/mi', + '-I $srcdir/parse', + '-I $srcdir/util', +} + +yacc('gram', '$srcdir/parse/gram.y') +build('copy', '$outdir/gram.h', '$outdir/gram.tab.h') + +lib('libparse.a', [[ + $outdir/gram.tab.c + parse/( + dump.c + err.c + export.c + fold.c + infer.c + names.c + node.c + specialize.c + stab.c + tok.c + type.c + use.c + ) +]], {'$outdir/gram.h'}) +lib('libmi.a', 'mi/(cfg.c flatten.c dfcheck.c match.c reaching.c)') +lib('libutil.a', 'util/(alloc.c bitset.c htab.c pack.c util.c)') + +exe('bin/6m', [[ + 6/( + blob.c + gen.c + gengas.c + genp9.c + isel.c + locs.c + main.c + ra.c + peep.c + simp.c + typeinfo.c + ) + libmi.a libparse.a libutil.a +]]) +file('bin/6m', '755', '$outdir/bin/6m') + +exe('bin/muse', {'muse/muse.c', 'libparse.a', 'libutil.a'}) +file('bin/muse', '755', '$outdir/bin/muse') + +build('cat', '$outdir/_myrrt.s', { + '$srcdir/rt/start-linux.s', + '$srcdir/rt/common.s', + '$srcdir/rt/abort-linux.s', +}) +build('as', '$outdir/_myrrt.o', '$outdir/_myrrt.s') +file('lib/myr/_myrrt.o', '644', '$outdir/_myrrt.o') + +set('mcflags', { + '-I $outdir/lib/sys', + '-I $outdir/lib/std', + '-I $outdir/lib/bio', + '-I $outdir/lib/regex', + '-I $outdir/lib/thread', +}) + +include '$dir/myr.ninja' +for lib in iterpaths('bio crypto date escfmt fileutil inifile json regex std sys testr thread') do + file('lib/myr/lib'..lib..'.use', '644', '$outdir/lib/'..lib..'/lib'..lib..'.use') + file('lib/myr/lib'..lib..'.a', '644', '$outdir/lib/'..lib..'/lib'..lib..'.a') +end +file('bin/mbld', '755', '$outdir/mbld/mbld') + +man{'doc/6m.1', 'doc/muse.1', 'mbld/mbld.1'} + +fetch 'git' |
