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


  1. cflags{
  2. '-std=c99', '-Wall', '-Wwrite-strings',
  3. '-I $srcdir/'
  4. }
  5. rule('sys_signame', '$srcdir/lib/sys_signame.sh >$out')
  6. build('sys_signame', '$outdir/lib/sys_signame.c', {'|', '$srcdir/lib/sys_signame.sh'})
  7. copy('$srcdir/', '$dir', {'config.h'})
  8. pkg.deps = {
  9. '$srcdir/config.h'
  10. }
  11. lib('libutils.a', [[libutils/(
  12. consent.c
  13. datetime_parse.c
  14. err.c
  15. fs.c
  16. getopt_nolong.c
  17. humanize.c
  18. lib_mkdir.c
  19. mode.c
  20. offline_realpath.c
  21. strchrnul.c
  22. strtodur.c
  23. symbolize_mode.c
  24. truncation.c
  25. user_group_parse.c
  26. )]])
  27. sym('bin/[', 'test')
  28. sym('bin/chgrp', 'chown')
  29. sym('bin/readlink', 'realpath')
  30. man{'$srcdir/cmd/readlink.1'}
  31. sym('bin/uuencode', 'base64')
  32. man{'$srcdir/cmd/uuencode.1'}
  33. sub('expr.ninja', function()
  34. cflags{'-D_POSIX_C_SOURCE=200809L', '-I $srcdir/cmd/'}
  35. yacc('cmd/expr', 'cmd/expr.y')
  36. exe('expr', [[
  37. $outdir/cmd/expr.tab.c
  38. libutils.a
  39. ]])
  40. file('bin/expr', '755', '$outdir/expr')
  41. man{'$srcdir/cmd/expr.1'}
  42. end)
  43. file('bin/timeout', '755',
  44. exe('timeout', {'cmd/timeout.c', 'libutils.a',
  45. cc('$outdir/lib/sys_signame.c', {}, {cflags='-I $srcdir/lib/'})
  46. })
  47. )
  48. man{'$srcdir/cmd/timeout.1'}
  49. file('bin/tr', '755', exe('tr', {'cmd/tr.c', 'libutils.a', 'lib/tr_str.c'}))
  50. man{'$srcdir/cmd/tr.1'}
  51. file('bin/sha1sum', '755', exe('sha1sum', {'cmd/sha1sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha1.c'}))
  52. man{'$srcdir/cmd/sha1sum.1'}
  53. file('bin/sha256sum', '755', exe('sha256sum', {'cmd/sha256sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha256.c'}))
  54. man{'$srcdir/cmd/sha256sum.1'}
  55. file('bin/sha512sum', '755', exe('sha512sum', {'cmd/sha512sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha512.c'}))
  56. man{'$srcdir/cmd/sha512sum.1'}
  57. rule('m4', 'm4 $m4flags $in > $out')
  58. build('m4', '$outdir/getconf_vars.h', '$srcdir/lib/getconf_vars.m4')
  59. file('bin/getconf', '755',
  60. link('getconf', objects({'cmd/getconf.c', 'libutils.a'}, '$outdir/getconf_vars.h', {cflags='-I $outdir/'}))
  61. )
  62. man{'$srcdir/cmd/getconf.1'}
  63. local cmds = {
  64. 'arch',
  65. 'base64',
  66. 'basename',
  67. 'cat',
  68. 'chmod',
  69. 'chown',
  70. 'chroot',
  71. 'cksum',
  72. 'cmp',
  73. 'cut',
  74. 'date',
  75. 'df',
  76. 'dirname',
  77. 'echo',
  78. 'env',
  79. -- 'expr', special
  80. 'false',
  81. 'head',
  82. 'id',
  83. 'install',
  84. 'join',
  85. 'link',
  86. 'ln',
  87. 'logname',
  88. 'mesg',
  89. 'mkdir',
  90. 'mkfifo',
  91. 'mknod',
  92. 'mktemp',
  93. 'mv',
  94. 'nice',
  95. 'nohup',
  96. 'nproc',
  97. 'paste',
  98. 'pathchk',
  99. 'printf',
  100. 'pwd',
  101. -- 'readlink', special
  102. 'realpath',
  103. 'renice',
  104. 'rm',
  105. 'rmdir',
  106. 'seq',
  107. -- 'sha1sum', special
  108. -- 'sha256sum', special
  109. -- 'sha512sum', special
  110. 'shuf',
  111. 'sleep',
  112. 'split',
  113. 'strings',
  114. 'sync',
  115. 'tee',
  116. 'test',
  117. 'time',
  118. -- 'timeout', special
  119. 'touch',
  120. -- 'tr', special
  121. 'true',
  122. 'truncate',
  123. 'tty',
  124. 'uname',
  125. 'uniq',
  126. 'unlink',
  127. -- 'uuencode', special
  128. 'wc',
  129. 'which',
  130. 'whoami',
  131. 'yes',
  132. }
  133. for _, cmd in ipairs(cmds) do
  134. local src = cmd
  135. local deps
  136. file('bin/'..cmd, '755', exe(cmd, {'cmd/'..src..'.c', 'libutils.a'}, deps))
  137. if cmd == 'date' or cmd == 'touch' then
  138. local out = '$outdir/'..cmd..'.1'
  139. build('m4', out, '$srcdir/cmd/'..src..'.1.in', {m4flags='-I $srcdir/'})
  140. man{out}
  141. else
  142. man{'$srcdir/cmd/'..src..'.1'}
  143. end
  144. end
  145. fetch 'curl'