package third_party.e2fsprogs

@Build(stage=1,script="$(EXTERNAL_MAKE)")
@BuildArtifactPath(cppflags="-I$(abspath $(EXTERNAL_BUILD_DIR))/third_party/e2fsprogs/core/install/include",
	ldflags="-L$(abspath $(EXTERNAL_BUILD_DIR))/third_party/e2fsprogs/core/install/lib")
static module core {
	@AddPrefix("^BUILD/extbld/^MOD_PATH/install/lib")
	source "libblkid.a", "libcom_err.a", "libe2p.a",
		"libext2fs.a", "libquota.a", "libuuid.a"

	@AddPrefix("^BUILD/extbld/^MOD_PATH/install/intl")
	source "libintl.a"

	depends embox.compat.posix.stubs

	@NoRuntime depends embox.compat.libc.all
	@NoRuntime depends embox.compat.libc.str_dup
	@NoRuntime depends embox.compat.posix.util.time
	@NoRuntime depends embox.compat.posix.util.sleep
	@NoRuntime depends embox.compat.posix.util.gettimeofday
	@NoRuntime depends embox.compat.posix.proc.uid
}

@App
@AutoCmd
@Cmd(name = "e2freefrag",
	help = "report filesystem free-space fragmentation",
	man = '''
		NAME
			e2freefrag - report filesystem free-space fragmentation
	''')
module e2freefrag {
	@AddPrefix("^BUILD/extbld/^MOD_PATH/../core/install/misc")
	source "e2freefrag.o"

	@NoRuntime depends core
}

@App
@AutoCmd
@Cmd(name = "dumpe2fs",
	help = "List the control structures of a second extended filesystem",
	man = '''
		NAME
			dumpe2fs - List the control structures of a second extended filesystem
	''')
module dumpe2fs {
	@AddPrefix("^BUILD/extbld/^MOD_PATH/../core/install/misc")
	source "dumpe2fs.o"

	@NoRuntime depends core
}

@Cmd(name = "mke2fs",
	help = "Make a ext2fs filesystem",
	man = '''
		NAME
			mke2fs - Make a ext2fs filesystem
	''')
module mke2fs {
	source "mke2fs_cmd.c"

	@AddPrefix("^BUILD/extbld/^MOD_PATH/../core/install/misc")
	source "mke2fs.o", "util.o", "profile.o",
		"prof_err.o", "default_profile.o"

	@NoRuntime depends core
}

@App
@AutoCmd
@Cmd(name = "e2fsck",
	help = "a consistency checker for the new extended file system",
	man = '''
		NAME
			e2fsck - a consistency checker for the new extended file system
	''')
module e2fsck {
	@AddPrefix("^BUILD/extbld/^MOD_PATH/../core/install/e2fsck")
	source "*.o"

	@NoRuntime depends core
}
