diff options
Diffstat (limited to 'pkg/e2fsprogs/gen.lua')
| -rw-r--r-- | pkg/e2fsprogs/gen.lua | 226 |
1 files changed, 226 insertions, 0 deletions
diff --git a/pkg/e2fsprogs/gen.lua b/pkg/e2fsprogs/gen.lua new file mode 100644 index 00000000..07c99082 --- /dev/null +++ b/pkg/e2fsprogs/gen.lua @@ -0,0 +1,226 @@ +set('version', '1.43.6') +cflags{ + '-D HAVE_CONFIG_H', + '-I include', + '-I $dir', + '-I $outdir/include', + '-I $outdir/internal', + '-I $outdir/internal/support', + '-I $srcdir/lib', +} + +set('subst', { + '-e s,@E2FSPROGS_VERSION@,$version,', + '-e s,@E2FSPROGS_MONTH@,June,', + '-e s,@E2FSPROGS_YEAR@,2016,', + '-e s,@JDEV@,,', +}) + +local function et(file, src, hdr) + src = '$outdir/'..src + hdr = '$outdir/'..hdr + build('awk', src, {file, '|', '$srcdir/lib/et/et_c.awk'}, { + expr='-f $srcdir/lib/et/et_c.awk -v outfile=/dev/stdout outfn='..src:match('[^/]*$'), + }) + build('awk', hdr, {file, '|', '$srcdir/lib/et/et_h.awk'}, { + expr='-f $srcdir/lib/et/et_h.awk -v outfile=/dev/stdout outfn='..hdr:match('[^/]*$'), + }) +end + +local function subst(output, input) + output = '$outdir/'..output + build('sed', output, '$srcdir/'..input, {expr='$subst'}) + return output +end + +local function substman(files) + for _, file in ipairs(files) do + if file:hassuffix('.in') then + file = subst(file:sub(1, -4), file) + end + man{file} + end +end + +subst('ext2_err.et', 'lib/ext2fs/ext2_err.et.in') +et('$outdir/ext2_err.et', 'ext2_err.c', 'include/ext2fs/ext2_err.h') +et('$srcdir/lib/support/prof_err.et', 'prof_err.c', 'internal/support/prof_err.h') + +build('copy', '$outdir/include/blkid/blkid.h', '$srcdir/lib/blkid/blkid.h.in') +build('copy', '$outdir/include/ext2fs/ext2_types.h', '$dir/ext2_types.h') +build('copy', '$outdir/include/uuid/uuid.h', '$srcdir/lib/uuid/uuid.h.in') +build('copy', '$outdir/internal/blkid/blkid_types.h', '$dir/blkid_types.h') + +sub('tools.ninja', function() + toolchain 'host' + exe('gen_crc32ctable', {'lib/ext2fs/gen_crc32ctable.c'}) +end) +rule('gen_crc32ctable', '$outdir/gen_crc32ctable >$out.tmp && mv $out.tmp $out') +build('gen_crc32ctable', '$outdir/internal/crc32c_table.h', {'|', '$outdir/gen_crc32ctable'}) + +pkg.hdrs = { + '$outdir/include/blkid/blkid.h', + '$outdir/include/ext2fs/ext2_err.h', + '$outdir/include/ext2fs/ext2_types.h', + '$outdir/include/uuid/uuid.h', +} +pkg.deps = { + '$dir/headers', + '$outdir/internal/blkid/blkid_types.h', + '$outdir/internal/support/prof_err.h', + '$outdir/internal/crc32c_table.h', +} + +lib('libcomm_err.a', [[lib/et/(error_message.c et_name.c init_et.c com_err.c com_right.c)]]) +lib('libblkid.a', [[lib/blkid/( + cache.c dev.c devname.c devno.c getsize.c llseek.c probe.c + read.c resolve.c save.c tag.c version.c +)]]) +lib('libe2p.a', [[lib/e2p/( + feature.c fgetflags.c fsetflags.c fgetversion.c fsetversion.c + getflags.c getversion.c hashstr.c iod.c ls.c ljs.c mntopts.c + parse_num.c pe.c pf.c ps.c setflags.c setversion.c uuid.c + ostype.c percent.c crypto_mode.c fgetproject.c fsetproject.c +)]]) +lib('libext2fs.a', [[$outdir/ext2_err.c lib/ext2fs/( + alloc.c + alloc_sb.c + alloc_stats.c + alloc_tables.c + atexit.c + badblocks.c + bb_inode.c + bitmaps.c + bitops.c + blkmap64_ba.c + blkmap64_rb.c + blknum.c + block.c + bmap.c + check_desc.c + closefs.c + crc16.c + crc32c.c + csum.c + dblist.c + dblist_dir.c + dirblock.c + dirhash.c + dir_iterate.c + expanddir.c + ext_attr.c + extent.c + fallocate.c + fileio.c + finddev.c + flushb.c + freefs.c + gen_bitmap.c + gen_bitmap64.c + get_num_dirs.c + get_pathname.c + getsize.c + getsectsize.c + i_block.c + icount.c + ind_block.c + initialize.c + inline.c + inline_data.c + inode.c + io_manager.c + ismounted.c + link.c + llseek.c + lookup.c + mkdir.c + mkjournal.c + mmp.c + namei.c + native.c + newdir.c + openfs.c + progress.c + punch.c + qcow2.c + read_bb.c + read_bb_file.c + res_gdt.c + rw_bitmaps.c + sha512.c + swapfs.c + symlink.c + undo_io.c + unix_io.c + unlink.c + valid_blk.c + version.c + rbtree.c + + dupfs.c +)]]) +lib('libsupport.a', [[$outdir/prof_err.c lib/support/( + cstring.c + mkquota.c + plausible.c + profile.c + parse_qtype.c + profile_helpers.c + quotaio.c + quotaio_v2.c + quotaio_tree.c + dict.c +)]]) +lib('libuuid.a', [[lib/uuid/( + clear.c + compare.c + copy.c + gen_uuid.c + isnull.c + pack.c + parse.c + unpack.c + unparse.c + uuid_time.c +)]]) + +exe('bin/e2fsck', [[ + e2fsck/( + unix.c e2fsck.c super.c pass1.c pass1b.c pass2.c + pass3.c pass4.c pass5.c journal.c badblocks.c util.c dirinfo.c + dx_dirinfo.c ehandler.c problem.c message.c quota.c recovery.c + region.c revoke.c ea_refcount.c rehash.c + logfile.c sigcatcher.c readahead.c + extents.c + ) + libsupport.a libext2fs.a libe2p.a libblkid.a libuuid.a libcomm_err.a +]]) +file('bin/e2fsck', '755', '$outdir/bin/e2fsck') +substman{'e2fsck/e2fsck.8.in', 'e2fsck/e2fsck.conf.5.in'} + +exe('bin/resize2fs', [[ + resize/( + extent.c resize2fs.c main.c online.c resource_track.c + sim_progress.c + ) + libext2fs.a libe2p.a libcomm_err.a +]]) +file('bin/resize2fs', '755', '$outdir/bin/resize2fs') +substman{'resize/resize2fs.8.in'} + +build('awk', '$outdir/default_profile.c', {'$srcdir/misc/mke2fs.conf.in', '|', '$srcdir/misc/profile-to-c.awk'}, { + expr='-f $srcdir/misc/profile-to-c.awk', +}) + +exe('bin/mke2fs', [[ + misc/( + mke2fs.c util.c mk_hugefiles.c + create_inode.c + ) + $outdir/default_profile.c + libsupport.a libext2fs.a libe2p.a libblkid.a libuuid.a libcomm_err.a +]]) +file('bin/mke2fs', '755', '$outdir/bin/mke2fs') +substman{'misc/mke2fs.8.in'} + +fetch 'git' |
