gen.lua (2751B)
- cflags{
- '-std=c99', '-Wall', '-Wwrite-strings',
- '-I $srcdir/'
- }
- rule('sys_signame', '$srcdir/lib/sys_signame.sh >$out')
- build('sys_signame', '$outdir/lib/sys_signame.c', {'|', '$srcdir/lib/sys_signame.sh'})
- copy('$srcdir/', '$dir', {'config.h'})
- pkg.deps = {
- '$srcdir/config.h'
- }
- lib('libutils.a', [[libutils/(
- consent.c
- datetime_parse.c
- err.c
- fs.c
- getopt_nolong.c
- humanize.c
- lib_mkdir.c
- mode.c
- offline_realpath.c
- strchrnul.c
- strtodur.c
- symbolize_mode.c
- truncation.c
- user_group_parse.c
- )]])
- sym('bin/[', 'test')
- sym('bin/chgrp', 'chown')
- sym('bin/readlink', 'realpath')
- sym('bin/uuencode', 'base64')
- --sub('expr.ninja', function()
- -- cflags{'-D_POSIX_C_SOURCE=200809L'}
- -- yacc('cmd/expr', 'cmd/expr.y')
- -- exe('expr', [[
- -- $outdir/cmd/expr.tab.c
- -- libutils.a
- -- ]])
- -- file('bin/expr', '755', '$outdir/expr')
- -- man{'$srcdir/cmd/expr.1'}
- --end)
- file('bin/timeout', '755',
- exe('timeout', {'cmd/timeout.c', 'libutils.a',
- cc('$outdir/lib/sys_signame.c', {}, {cflags='-I $srcdir/lib/'})
- })
- )
- man{'$srcdir/cmd/timeout.1'}
- file('bin/tr', '755', exe('tr', {'cmd/tr.c', 'libutils.a', 'lib/tr_str.c'}))
- man{'$srcdir/cmd/tr.1'}
- file('bin/sha1sum', '755', exe('sha1sum', {'cmd/sha1sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha1.c'}))
- man{'$srcdir/cmd/sha1sum.1'}
- file('bin/sha256sum', '755', exe('sha256sum', {'cmd/sha256sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha256.c'}))
- man{'$srcdir/cmd/sha256sum.1'}
- file('bin/sha512sum', '755', exe('sha512sum', {'cmd/sha512sum.c', 'libutils.a', 'lib/bytes2hex.c.o', 'lib/sha512.c'}))
- man{'$srcdir/cmd/sha512sum.1'}
- local cmds = {
- 'arch',
- 'base64',
- 'basename',
- 'cat',
- 'chmod',
- 'chown',
- 'chroot',
- 'cksum',
- 'cmp',
- 'cut',
- 'date',
- 'df',
- 'dirname',
- 'echo',
- 'env',
- -- 'expr',
- 'false',
- -- 'getconf', // Try again in the release after 0.0.6
- 'head',
- 'id',
- 'install',
- 'join',
- 'link',
- 'ln',
- 'logname',
- 'mkdir',
- 'mkfifo',
- 'mknod',
- 'mktemp',
- 'mv',
- 'nice',
- 'nohup',
- 'nproc',
- 'paste',
- 'pathchk',
- 'printf',
- 'pwd',
- -- 'readlink',
- 'realpath',
- 'renice',
- 'rm',
- 'rmdir',
- 'seq',
- -- 'sha1sum',
- -- 'sha256sum',
- -- 'sha512sum',
- 'shuf',
- 'sleep',
- 'split',
- 'strings',
- 'sync',
- 'tee',
- 'test',
- 'time',
- -- 'timeout',
- 'touch',
- -- 'tr',
- 'true',
- 'truncate',
- 'tty',
- 'uname',
- 'uniq',
- 'unlink',
- -- 'uuencode',
- 'wc',
- 'which',
- 'whoami',
- 'yes',
- }
- rule('m4', 'm4 $m4flags $in > $out')
- for _, cmd in ipairs(cmds) do
- local src = cmd
- local deps
- file('bin/'..cmd, '755', exe(cmd, {'cmd/'..src..'.c', 'libutils.a'}, deps))
- if cmd == 'date' or cmd == 'touch' then
- local out = '$outdir/'..cmd..'.1'
- build('m4', out, '$srcdir/cmd/'..src..'.1.in', {m4flags='-I $srcdir/'})
- man{out}
- else
- man{'$srcdir/cmd/'..src..'.1'}
- end
- end
- fetch 'curl'