local arch = ({ aarch64='arm64', x86_64='x86', })[config.target.platform:match('[^-]*')] sub('tools.ninja', function() toolchain(config.host) exe('unifdef', {'scripts/unifdef.c'}) end) rule('header', 'sed -E -f $dir/header.sed $in >$out.tmp && { $outdir/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ $out.tmp >$out; [ $$? -le 1 ]; } && rm $out.tmp') rule('wrapper', [[printf '#include \n' $file >$out]]) local function process(outdir, srcdir, files) local outs = {} for i, file in ipairs(files) do local out = outdir..'/'..file outs[i] = out build('header', out, {srcdir..'/'..file, '|', '$dir/header.sed', '$outdir/unifdef'}) end return outs end local mandatory = { --