summaryrefslogtreecommitdiff
path: root/pkg/e2fsprogs/gen.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/e2fsprogs/gen.lua')
-rw-r--r--pkg/e2fsprogs/gen.lua226
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'