147 lines
3.8 KiB
Makefile
147 lines
3.8 KiB
Makefile
KMOD= erofs
|
|
|
|
.EROFS_SUPPORTED_ARCHES= amd64 aarch64 riscv64
|
|
.if empty(.EROFS_SUPPORTED_ARCHES:M${MACHINE_ARCH})
|
|
.error erofs requires a 64-bit little-endian FreeBSD kernel; supported MACHINE_ARCH values are amd64, aarch64, and riscv64 (got ${MACHINE_ARCH})
|
|
.endif
|
|
|
|
WITH_ZSTDIO?= 1
|
|
.if empty(WITH_ZSTDIO:M0) && empty(WITH_ZSTDIO:M1)
|
|
.error WITH_ZSTDIO must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_DEBUG?= 1
|
|
.if empty(WITH_EROFS_DEBUG:M0) && empty(WITH_EROFS_DEBUG:M1)
|
|
.error WITH_EROFS_DEBUG must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_SDT?= 1
|
|
.if empty(WITH_EROFS_SDT:M0) && empty(WITH_EROFS_SDT:M1)
|
|
.error WITH_EROFS_SDT must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_XATTR?= 1
|
|
.if empty(WITH_EROFS_XATTR:M0) && empty(WITH_EROFS_XATTR:M1)
|
|
.error WITH_EROFS_XATTR must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_POSIX_ACL?= ${WITH_EROFS_XATTR}
|
|
.if empty(WITH_EROFS_POSIX_ACL:M0) && empty(WITH_EROFS_POSIX_ACL:M1)
|
|
.error WITH_EROFS_POSIX_ACL must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_SECURITY?= ${WITH_EROFS_XATTR}
|
|
.if empty(WITH_EROFS_SECURITY:M0) && empty(WITH_EROFS_SECURITY:M1)
|
|
.error WITH_EROFS_SECURITY must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_BACKED_BY_FILE?= 1
|
|
.if empty(WITH_EROFS_BACKED_BY_FILE:M0) && empty(WITH_EROFS_BACKED_BY_FILE:M1)
|
|
.error WITH_EROFS_BACKED_BY_FILE must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_ZIP?= 1
|
|
.if empty(WITH_EROFS_ZIP:M0) && empty(WITH_EROFS_ZIP:M1)
|
|
.error WITH_EROFS_ZIP must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_ZIP_LZMA?= ${WITH_EROFS_ZIP}
|
|
.if ${WITH_EROFS_ZIP_LZMA} != 0 && ${WITH_EROFS_ZIP_LZMA} != 1
|
|
.error WITH_EROFS_ZIP_LZMA must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_ZIP_DEFLATE?= ${WITH_EROFS_ZIP}
|
|
.if empty(WITH_EROFS_ZIP_DEFLATE:M0) && empty(WITH_EROFS_ZIP_DEFLATE:M1)
|
|
.error WITH_EROFS_ZIP_DEFLATE must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_ZIP_ZSTD?= ${WITH_EROFS_ZIP}
|
|
.if empty(WITH_EROFS_ZIP_ZSTD:M0) && empty(WITH_EROFS_ZIP_ZSTD:M1)
|
|
.error WITH_EROFS_ZIP_ZSTD must be 0 or 1
|
|
.endif
|
|
|
|
WITH_EROFS_PCPU_KTHREAD?= 1
|
|
.if empty(WITH_EROFS_PCPU_KTHREAD:M0) && empty(WITH_EROFS_PCPU_KTHREAD:M1)
|
|
.error WITH_EROFS_PCPU_KTHREAD must be 0 or 1
|
|
.endif
|
|
|
|
.if ${WITH_EROFS_XATTR} == 0
|
|
.if ${WITH_EROFS_POSIX_ACL} != 0 || ${WITH_EROFS_SECURITY} != 0
|
|
.error WITH_EROFS_POSIX_ACL and WITH_EROFS_SECURITY require WITH_EROFS_XATTR=1
|
|
.endif
|
|
.endif
|
|
|
|
.if ${WITH_EROFS_ZIP} == 0
|
|
.if ${WITH_EROFS_ZIP_LZMA} != 0 || ${WITH_EROFS_ZIP_DEFLATE} != 0 || \
|
|
${WITH_EROFS_ZIP_ZSTD} != 0
|
|
.error WITH_EROFS_ZIP_LZMA, WITH_EROFS_ZIP_DEFLATE, and WITH_EROFS_ZIP_ZSTD require WITH_EROFS_ZIP=1
|
|
.endif
|
|
.endif
|
|
|
|
CFLAGS+= -DWITH_EROFS_DEBUG=${WITH_EROFS_DEBUG} \
|
|
-DWITH_EROFS_SDT=${WITH_EROFS_SDT} \
|
|
-DWITH_EROFS_XATTR=${WITH_EROFS_XATTR} \
|
|
-DWITH_EROFS_POSIX_ACL=${WITH_EROFS_POSIX_ACL} \
|
|
-DWITH_EROFS_SECURITY=${WITH_EROFS_SECURITY} \
|
|
-DWITH_EROFS_BACKED_BY_FILE=${WITH_EROFS_BACKED_BY_FILE} \
|
|
-DWITH_EROFS_ZIP=${WITH_EROFS_ZIP} \
|
|
-DWITH_EROFS_ZIP_LZMA=${WITH_EROFS_ZIP_LZMA} \
|
|
-DWITH_EROFS_ZIP_DEFLATE=${WITH_EROFS_ZIP_DEFLATE} \
|
|
-DWITH_EROFS_ZIP_ZSTD=${WITH_EROFS_ZIP_ZSTD} \
|
|
-DWITH_EROFS_PCPU_KTHREAD=${WITH_EROFS_PCPU_KTHREAD}
|
|
|
|
.if ${WITH_EROFS_SDT} == 1
|
|
CFLAGS+= -DKDTRACE_HOOKS
|
|
.endif
|
|
|
|
# FreeBSD filesystem core and vnode adapter.
|
|
SRCS= super.c \
|
|
inode.c \
|
|
data.c \
|
|
namei.c \
|
|
dir.c \
|
|
sysfs.c \
|
|
erofs_vnops.c \
|
|
vnode_if.h
|
|
|
|
.if ${WITH_EROFS_BACKED_BY_FILE} == 1
|
|
SRCS+= fileio.c
|
|
.endif
|
|
|
|
.if ${WITH_EROFS_SDT} == 1
|
|
SRCS+= trace.c
|
|
.endif
|
|
|
|
# FreeBSD xattr and ACL adapter.
|
|
.if ${WITH_EROFS_XATTR} == 1
|
|
SRCS+= xattr.c
|
|
.endif
|
|
|
|
.if ${WITH_EROFS_ZIP} == 1
|
|
# Compression core.
|
|
SRCS+= decompressor.c \
|
|
zmap.c \
|
|
zdata.c \
|
|
zutil.c
|
|
|
|
# Algorithm backends.
|
|
SRCS+= decompressor_lz4.c
|
|
.if ${WITH_EROFS_ZIP_LZMA} == 1
|
|
SRCS+= decompressor_lzma.c
|
|
.endif
|
|
.if ${WITH_EROFS_ZIP_DEFLATE} == 1
|
|
SRCS+= decompressor_deflate.c
|
|
.endif
|
|
.if ${WITH_EROFS_ZIP_ZSTD} == 1
|
|
SRCS+= 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
|
|
.endif
|
|
.endif
|
|
|
|
.include <bsd.kmod.mk>
|