logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git

gen.lua (1715B)


  1. cflags{
  2. '-I $outdir',
  3. '-I $srcdir',
  4. '-I $srcdir/mi',
  5. '-I $srcdir/parse',
  6. '-I $srcdir/util',
  7. }
  8. yacc('gram', '$srcdir/parse/gram.y')
  9. build('copy', '$outdir/gram.h', '$outdir/gram.tab.h')
  10. lib('libparse.a', [[
  11. $outdir/gram.tab.c
  12. parse/(
  13. dump.c
  14. err.c
  15. export.c
  16. fold.c
  17. infer.c
  18. names.c
  19. node.c
  20. specialize.c
  21. stab.c
  22. tok.c
  23. type.c
  24. use.c
  25. )
  26. ]], {'$outdir/gram.h'})
  27. lib('libmi.a', 'mi/(cfg.c flatten.c dfcheck.c match.c reaching.c)')
  28. lib('libutil.a', 'util/(alloc.c bitset.c htab.c pack.c util.c)')
  29. exe('bin/6m', [[
  30. 6/(
  31. blob.c
  32. gen.c
  33. gengas.c
  34. genp9.c
  35. isel.c
  36. locs.c
  37. main.c
  38. ra.c
  39. peep.c
  40. simp.c
  41. typeinfo.c
  42. )
  43. libmi.a libparse.a libutil.a
  44. ]])
  45. file('bin/6m', '755', '$outdir/bin/6m')
  46. exe('bin/muse', {'muse/muse.c', 'libparse.a', 'libutil.a'})
  47. file('bin/muse', '755', '$outdir/bin/muse')
  48. build('cat', '$outdir/_myrrt.s', {
  49. '$srcdir/rt/start-linux.s',
  50. '$srcdir/rt/common.s',
  51. '$srcdir/rt/abort-linux.s',
  52. })
  53. build('as', '$outdir/_myrrt.o', '$outdir/_myrrt.s')
  54. file('lib/myr/_myrrt.o', '644', '$outdir/_myrrt.o')
  55. set('mcflags', {
  56. '-I $outdir/lib/sys',
  57. '-I $outdir/lib/std',
  58. '-I $outdir/lib/bio',
  59. '-I $outdir/lib/iter',
  60. '-I $outdir/lib/regex',
  61. '-I $outdir/lib/thread',
  62. })
  63. include '$dir/myr.ninja'
  64. local libs = {
  65. 'bio',
  66. 'crypto',
  67. 'date',
  68. 'escfmt',
  69. 'fileutil',
  70. 'flate',
  71. 'http',
  72. 'inifile',
  73. 'iter',
  74. 'json',
  75. 'math',
  76. 'regex',
  77. 'std',
  78. 'sys',
  79. 'testr',
  80. 'thread',
  81. }
  82. for _, lib in ipairs(libs) do
  83. file('lib/myr/lib'..lib..'.use', '644', '$outdir/lib/'..lib..'/lib'..lib..'.use')
  84. file('lib/myr/lib'..lib..'.a', '644', '$outdir/lib/'..lib..'/lib'..lib..'.a')
  85. end
  86. file('bin/mbld', '755', '$outdir/mbld/mbld')
  87. man{'doc/6m.1', 'doc/muse.1', 'mbld/mbld.1'}
  88. fetch 'git'