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 (4169B)


  1. cflags{
  2. '-std=c99', '-Wall', '-Wpedantic',
  3. '-Wno-array-parameter', '-Wno-misleading-indentation',
  4. '-D _GNU_SOURCE',
  5. '-I $srcdir/lasagna',
  6. '-I $outdir',
  7. }
  8. sub('tools.ninja', function()
  9. toolchain(config.host)
  10. exe('mk_outvec', {'lasagna/outvec/mk_outvec.c'})
  11. exe('mk_rlimit', {'lasagna/rlimit/mk_rlimit.c'})
  12. exe('mksysstr', {'lasagna/sysstr/mksysstr.c'})
  13. end)
  14. rule('outvec', '$outdir/mk_outvec >$out')
  15. build('outvec', '$outdir/outvec_STDOUT.h', {'|', '$outdir/mk_outvec'})
  16. rule('rlimit', '$outdir/mk_rlimit >$out')
  17. build('rlimit', '$outdir/rlimit_defs.c.in', {'|', '$outdir/mk_rlimit'})
  18. rule('sysstr', '$outdir/mksysstr $type >$out')
  19. build('sysstr', '$outdir/sysstr_errno.c.in', {'|', '$outdir/mksysstr'}, {type='errno'})
  20. build('sysstr', '$outdir/sysstr_signo.c.in', {'|', '$outdir/mksysstr'}, {type='signo'})
  21. pkg.deps = {
  22. '$outdir/outvec_STDOUT.h',
  23. '$outdir/rlimit_defs.c.in',
  24. '$outdir/sysstr_errno.c.in',
  25. '$outdir/sysstr_signo.c.in',
  26. }
  27. lib('libasagna.a', [[lasagna/(
  28. buf/buf_(cmp copy fill ndx rcopy rndx).c
  29. cstr/cstr_(cat chop cmp cmpi contains copy dup lcat lcpy len ltrim match matchi ncmp pos rpos rtrim trim vcat_ vcopy_ vlen_).c
  30. cdb/(cdb_(find cc clear close distance dynget dynread get hashpart init open read seq) cdbmk_(add addioq addrec clear finish init _update)).c
  31. devout/devout.c
  32. domsock/domsock_(accept close connect create).c
  33. dynbuf/(dynbuf.c dynbuf_(clear copy free freebuf grow need new pack put putb).c)
  34. dynstr/(dynstr.c dynstr_(chop clear copy copys free freestr grow need new put putc putn puts set vputs_).c)
  35. dynstuf/dynstuf_(find free get grow init isempty items new peek pop push replace reverse set slots sort stuf visit).c
  36. execvx/execvx.c
  37. fd/fd_(blocking cloexec dupe move nonblock).c
  38. hdb/hdb_(find cc clear close distance dynget dynread get hashpart init open read seq).c
  39. hdb/hdbmk_(add addioq addrec clear finish start _update).c
  40. hfunc/hfunc_(djba djbm djbx elf1 fnva fnvm ghfa ghfm ghfx jsw1 kp37 kr31 kx17 murm oat1 p50a pjw1 rsuh rot1 rotm sax1 sdbm sfh1 postmix32).c
  41. ioq/ioq_(get getln init put putfd putfile stderr stdin stdout vputs_).c
  42. newenv/newenv.c
  43. nextopt/(nextopt nextopt_progname).c
  44. nfmt/nfmt_(uint32 uint32_pad uint32_pad_ uint32_pad0 uint32_pad0_ uint32o uint32o_pad0 uint32o_pad0_ uint32x uint32x_pad uint32x_pad_ uint32x_pad0 uint32x_pad0_ uint64 uint64_pad uint64_pad_ uint64_pad0 uint64_pad0_).c
  45. nuscan/nuscan_(uint32 uint32o).c
  46. outvec/outvec_(STDERR STDOUT flush put puts vputs_).c
  47. packet/packet_(read write).c
  48. padlock/padlock_(exbyte exlock extest fcntl shbyte shlock shtest unbyte unlock).c
  49. pidlock/pidlock_(check set).c
  50. pkt/pkt_(load read write).c
  51. pollio/pollio.c
  52. rlimit/rlimit.c
  53. sig/sig_(block catch catchr unblock).c
  54. sysstr/sysstr_(errno signal).c
  55. tain/tain_(assign iszero less load load_msecs load_utc minus now pack packhex pause plus tai_pack tai_unpack uptime to_float to_msecs to_utc unpack unpackhex).c
  56. tx64/(base64_vec tx64_encode).c
  57. ufunc/ufunc_(u32add u48add).c
  58. upak/upak_vpack.c
  59. upak/(upak upak(16 24 32 48 64))_pack.c
  60. upak/(upak upak(16 24 32 48 64))_unpack.c
  61. )]])
  62. exe('perpd', 'perp/(perpd.c perpd_conn.c perpd_svdef.c) libasagna.a')
  63. file('bin/perpd', '755', '$outdir/perpd')
  64. man{'perp/man/perpd.8'}
  65. for _, cmd in ipairs{'perpboot', 'perpctl', 'perphup', 'perpls', 'perpok', 'perpstat'} do
  66. file('bin/'..cmd, '755', exe(cmd, {'perp/'..cmd..'.c', 'libasagna.a'}))
  67. man{'perp/man/'..cmd..'.8'}
  68. end
  69. cc('perp/tinylog.c', nil, {
  70. cflags='$cflags -D \'TINYLOG_ZIP="/bin/gzip"\' -D \'ZIP_EXT=".gz"\'',
  71. })
  72. link('tinylog', {'perp/tinylog.c.o', 'libasagna.a'})
  73. file('bin/tinylog', '755', '$outdir/tinylog')
  74. man{'perp/man/tinylog.8'}
  75. local tools = {
  76. 'runargs', 'runargv0', 'runchoom', 'rundetach', 'rundeux', 'runenv',
  77. 'runfile', 'runlimit', 'runlock', 'runpause', 'runsession', 'runtool',
  78. 'runtrap', 'runuid',
  79. 'catargs', 'catenv', 'catlimits', 'catuid',
  80. }
  81. for _, tool in ipairs(tools) do
  82. file('bin/'..tool, '755', exe(tool, {'runtools/'..tool..'.c', 'libasagna.a'}))
  83. if not tool:hasprefix('cat') then
  84. man{'runtools/man/'..tool..'.8'}
  85. end
  86. end
  87. man{
  88. 'perp/man/perpetrate.5',
  89. 'perp/man/perp_intro.8',
  90. 'runtools/man/runtools_intro.8',
  91. }
  92. fetch 'curl'