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


  1. cflags{
  2. '-std=gnu17',
  3. '-Wall', '-Wno-pointer-sign', '-Wno-maybe-uninitialized', '-Wno-attributes',
  4. [[-D 'DEF_WEAK(n)=_Static_assert(1, "")']],
  5. '-I $dir/include',
  6. '-I $outdir/include',
  7. }
  8. pkg.hdrs = {
  9. copy('$outdir/include', '$srcdir/sys', {'sys/queue.h', 'sys/tree.h', 'sys/_null.h'}),
  10. copy('$outdir/include', '$srcdir/include', {'fts.h', 'vis.h'}),
  11. copy('$outdir/include', '$srcdir/lib/libutil', {'ohash.h'}),
  12. }
  13. pkg.deps = {'$gendir/headers'}
  14. -- Link arc4random.c to '$outdir' so that it doesn't include the local
  15. -- arc4random.h
  16. build('copy', '$outdir/lib/libc/crypt/arc4random.c', '$srcdir/lib/libc/crypt/arc4random.c')
  17. build('copy', '$outdir/lib/libc/crypt/arc4random.h', '$srcdir/lib/libcrypto/arc4random/arc4random_linux.h')
  18. build('copy', '$outdir/lib/libc/crypt/chacha_private.h', '$srcdir/lib/libc/crypt/chacha_private.h')
  19. cc('$outdir/lib/libc/crypt/arc4random.c', {
  20. '$outdir/lib/libc/crypt/arc4random.h',
  21. '$outdir/lib/libc/crypt/chacha_private.h',
  22. })
  23. lib('libbsd.a', [[
  24. lib/libc/(
  25. crypt/(arc4random.c.o arc4random_uniform.c)
  26. gen/(fts.c getprogname.c pwcache.c readpassphrase.c setprogname.c unvis.c vis.c warnc.c vwarnc.c)
  27. net/base64.c
  28. stdlib/(freezero.c recallocarray.c strtonum.c)
  29. string/(strmode.c timingsafe_bcmp.c timingsafe_memcmp.c)
  30. )
  31. lib/libutil/(fmt_scaled.c ohash.c)
  32. ]])
  33. file('lib/libbsd.a', '644', '$outdir/libbsd.a')
  34. -- diff
  35. exe('diff', 'usr.bin/diff/(diff.c diffdir.c diffreg.c xmalloc.c) libbsd.a')
  36. file('bin/diff', '755', '$outdir/diff')
  37. man{'usr.bin/diff/diff.1'}
  38. -- doas
  39. yacc('usr.bin/doas/parse', 'usr.bin/doas/parse.y')
  40. cc('$outdir/usr.bin/doas/parse.tab.c', nil, {cflags='$cflags -I $srcdir/usr.bin/doas'})
  41. cc('usr.bin/doas/doas.c', nil, {cflags='$cflags -D _GNU_SOURCE'})
  42. exe('doas', 'usr.bin/doas/(doas.c.o env.c parse.tab.c.o persist.c) libbsd.a')
  43. file('bin/doas', '6755', '$outdir/doas')
  44. man{'usr.bin/doas/doas.1', 'usr.bin/doas/doas.conf.5'}
  45. -- fmt
  46. file('bin/fmt', '755', exe('fmt', {'usr.bin/fmt/fmt.c', 'libbsd.a'}))
  47. man{'usr.bin/fmt/fmt.1'}
  48. -- nc
  49. sub('nc.ninja', function()
  50. cflags{'-isystem $builddir/pkg/libtls-bearssl/include'}
  51. exe('nc', [[
  52. usr.bin/nc/(netcat.c atomicio.c socks.c)
  53. $builddir/pkg/libtls-bearssl/libtls.a.d
  54. libbsd.a
  55. ]], {'pkg/libtls-bearssl/headers'})
  56. file('bin/nc', '755', '$outdir/nc')
  57. man{'usr.bin/nc/nc.1'}
  58. end)
  59. -- m4
  60. yacc('usr.bin/m4/parser', 'usr.bin/m4/parser.y')
  61. cc('usr.bin/m4/tokenizer.c', {'$outdir/usr.bin/m4/parser.tab.h'}, {cflags='$cflags -I $outdir/usr.bin/m4'})
  62. exe('m4', [[
  63. usr.bin/m4/(eval.c expr.c look.c main.c misc.c gnum4.c trace.c tokenizer.c.o)
  64. $outdir/usr.bin/m4/parser.tab.c
  65. libbsd.a
  66. ]])
  67. file('bin/m4', '755', '$outdir/m4')
  68. man{'usr.bin/m4/m4.1'}
  69. -- patch
  70. exe('patch', 'usr.bin/patch/(patch.c pch.c inp.c util.c backupfile.c mkpath.c ed.c) libbsd.a')
  71. file('bin/patch', '755', '$outdir/patch')
  72. man{'usr.bin/patch/patch.1'}
  73. -- pax
  74. exe('pax', [[bin/pax/(
  75. ar_io.c ar_subs.c buf_subs.c cpio.c file_subs.c ftree.c
  76. gen_subs.c getoldopt.c options.c pat_rep.c pax.c sel_subs.c tables.c
  77. tar.c tty_subs.c
  78. ) libbsd.a]])
  79. file('bin/tar', '755', '$outdir/pax')
  80. sym('bin/cpio', 'tar')
  81. man{'bin/pax/tar.1', 'bin/pax/cpio.1'}
  82. -- rsync
  83. exe('rsync', [[
  84. usr.bin/rsync/(
  85. blocks.c client.c copy.c downloader.c fargs.c flist.c hash.c ids.c
  86. io.c log.c main.c md4.c misc.c mkpath.c mktemp.c receiver.c rmatch.c
  87. rules.c sender.c server.c session.c socket.c symlinks.c uploader.c
  88. )
  89. libbsd.a
  90. ]])
  91. file('bin/rsync', '755', '$outdir/rsync')
  92. man{'usr.bin/rsync/rsync.1', 'usr.bin/rsync/rsync.5', 'usr.bin/rsync/rsyncd.5'}
  93. fetch 'local'