summaryrefslogtreecommitdiff
path: root/pkg/mc
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/mc')
-rw-r--r--pkg/mc/gen.lua78
-rw-r--r--pkg/mc/gen.rc68
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