KMOD= erofs

.if ${MACHINE_ARCH} != "amd64"
.error erofs supports only MACHINE_ARCH=amd64
.endif

WITH_ZSTDIO?= 0
.if empty(WITH_ZSTDIO:M0) && empty(WITH_ZSTDIO:M1)
.error WITH_ZSTDIO must be 0 or 1
.endif

# FreeBSD filesystem core and vnode adapter.
SRCS=	super.c \
	inode.c \
	data.c \
	namei.c \
	dir.c \
	erofs_vnops.c \
	vnode_if.h

# FreeBSD xattr and ACL adapter.
SRCS+=	xattr.c

# Compression core.
SRCS+=	decompressor.c \
	zmap.c \
	zdata.c

# Algorithm backends.
SRCS+=	decompressor_lz4.c \
	decompressor_lzma.c \
	decompressor_deflate.c \
	decompressor_zstd.c

# Optional Zstd control plane.
CFLAGS.decompressor_zstd.c+= -I${SYSDIR}/contrib/zstd/lib/freebsd
.if ${WITH_ZSTDIO} == 1
CFLAGS.decompressor_zstd.c+= -DZSTDIO
.endif

.include <bsd.kmod.mk>
