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


  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. sym('bin/uuencode', 'base64')
  31. --sub('expr.ninja', function()
  32. -- cflags{'-D_POSIX_C_SOURCE=200809L'}
  33. -- yacc('cmd/expr', 'cmd/expr.y')
  34. -- exe('expr', [[
  35. -- $outdir/cmd/expr.tab.c
  36. -- libutils.a
  37. -- ]])
  38. -- file('bin/expr', '755', '$outdir/expr')
  39. -- man{'$srcdir/cmd/expr.1'}
  40. --end)
  41. file('bin/timeout', '755',
  42. exe('timeout', {'cmd/timeout.c', 'libutils.a',
  43. cc('$outdir/lib/sys_signame.c', {}, {cflags='-I $srcdir/lib/'})
  44. })
  45. )
  46. man{'$srcdir/cmd/timeout.1'}
  47. file('bin/tr', '755', exe('tr', {'cmd/tr.c', 'libutils.a', 'lib/tr_str.c'}))
  48. man{'$srcdir/cmd/tr.1'}
  49. file('bin/sha1sum', '755', exe('sha1sum', {'cmd/sha1sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha1.c'}))
  50. man{'$srcdir/cmd/sha1sum.1'}
  51. file('bin/sha256sum', '755', exe('sha256sum', {'cmd/sha256sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha256.c'}))
  52. man{'$srcdir/cmd/sha256sum.1'}
  53. file('bin/sha512sum', '755', exe('sha512sum', {'cmd/sha512sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha512.c'}))
  54. man{'$srcdir/cmd/sha512sum.1'}
  55. local cmds = {
  56. 'arch',
  57. 'base64',
  58. 'basename',
  59. 'cat',
  60. 'chmod',
  61. 'chown',
  62. 'chroot',
  63. 'cksum',
  64. 'cmp',
  65. 'cut',
  66. 'date',
  67. 'df',
  68. 'dirname',
  69. 'echo',
  70. 'env',
  71. -- 'expr',
  72. 'false',
  73. -- 'getconf', // Try again in the release after 0.0.6
  74. 'head',
  75. 'id',
  76. 'install',
  77. 'join',
  78. 'link',
  79. 'ln',
  80. 'logname',
  81. 'mkdir',
  82. 'mkfifo',
  83. 'mknod',
  84. 'mktemp',
  85. 'mv',
  86. 'nice',
  87. 'nohup',
  88. 'nproc',
  89. 'paste',
  90. 'pathchk',
  91. 'printf',
  92. 'pwd',
  93. -- 'readlink',
  94. 'realpath',
  95. 'renice',
  96. 'rm',
  97. 'rmdir',
  98. 'seq',
  99. -- 'sha1sum',
  100. -- 'sha256sum',
  101. -- 'sha512sum',
  102. 'shuf',
  103. 'sleep',
  104. 'split',
  105. 'strings',
  106. 'sync',
  107. 'tee',
  108. 'test',
  109. 'time',
  110. -- 'timeout',
  111. 'touch',
  112. -- 'tr',
  113. 'true',
  114. 'truncate',
  115. 'tty',
  116. 'uname',
  117. 'uniq',
  118. 'unlink',
  119. -- 'uuencode',
  120. 'wc',
  121. 'which',
  122. 'whoami',
  123. 'yes',
  124. }
  125. rule('m4', 'm4 $m4flags $in > $out')
  126. for _, cmd in ipairs(cmds) do
  127. local src = cmd
  128. local deps
  129. file('bin/'..cmd, '755', exe(cmd, {'cmd/'..src..'.c', 'libutils.a'}, deps))
  130. if cmd == 'date' or cmd == 'touch' then
  131. local out = '$outdir/'..cmd..'.1'
  132. build('m4', out, '$srcdir/cmd/'..src..'.1.in', {m4flags='-I $srcdir/'})
  133. man{out}
  134. else
  135. man{'$srcdir/cmd/'..src..'.1'}
  136. end
  137. end
  138. fetch 'curl'