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 | |
| parent | cb362b531d79708a259bbf070dee5104fd63df08 (diff) | |
Rewrite ninja generation scripts in Lua
Diffstat (limited to 'pkg/mc')
| -rw-r--r-- | pkg/mc/gen.lua | 78 | ||||
| -rw-r--r-- | pkg/mc/gen.rc | 68 |
2 files changed, 78 insertions, 68 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' diff --git a/pkg/mc/gen.rc b/pkg/mc/gen.rc deleted file mode 100644 index ede98f06..00000000 --- a/pkg/mc/gen.rc +++ /dev/null @@ -1,68 +0,0 @@ -cflags\ - -I '$outdir' \ - -I '$srcdir' \ - -I '$srcdir'/mi\ - -I '$srcdir'/parse\ - -I '$srcdir'/util - -yacc gram '$srcdir'/parse/gram.y -build '$outdir'/gram.h copy '$outdir'/gram.tab.h - -lib libparse.a -d '$outdir'/gram.h '$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\ -) -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 '$outdir'/bin/6m 755 - -exe bin/muse muse/muse.c libparse.a libutil.a -file bin/muse '$outdir'/bin/muse 755 - -man -d doc 1 6m.1 muse.1 - -build '$outdir'/_myrrt.s cat '$srcdir'/rt/^(start-linux.s common.s abort-linux.s) -build '$outdir'/_myrrt.o as '$outdir'/_myrrt.s -file lib/myr/_myrrt.o '$outdir'/_myrrt.o 644 - -set mcflags $"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 bio crypto date escfmt fileutil inifile json regex std sys testr thread) { - file lib/myr/lib$lib.use '$outdir'/lib/$lib/lib$lib.use 644 - file lib/myr/lib$lib.a '$outdir'/lib/$lib/lib$lib.a 644 -} -file bin/mbld '$outdir'/mbld/mbld 755 - -man -d mbld 1 mbld.1 - -fetch git |
