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/iter', '-I $outdir/lib/regex', '-I $outdir/lib/thread', }) include '$dir/myr.ninja' local libs = { 'bio', 'crypto', 'date', 'escfmt', 'fileutil', 'flate', 'http', 'inifile', 'iter', 'json', 'math', 'regex', 'std', 'sys', 'testr', 'thread', } for _, lib in ipairs(libs) 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'