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


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