1# $FreeBSD$
2
3LIB=	zstd
4SRCS=	entropy_common.c \
5	error_private.c \
6	fse_decompress.c \
7	pool.c \
8	threading.c \
9	xxhash.c \
10	zstd_common.c \
11	fse_compress.c \
12	huf_compress.c \
13	zstd_compress.c \
14	zstdmt_compress.c \
15	huf_decompress.c \
16	zstd_decompress.c \
17	zbuff_common.c \
18	zbuff_compress.c \
19	zbuff_decompress.c \
20	cover.c \
21	divsufsort.c \
22	zdict.c \
23	zstd_fast.c \
24	zstd_lazy.c \
25	zstd_ldm.c \
26	zstd_opt.c \
27	zstd_double_fast.c
28WARNS?=	2
29INCS=	zstd.h
30CFLAGS+=	-I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \
31		-DZSTD_MULTITHREAD=1
32LIBADD=	pthread
33
34PRIVATELIB=	yes
35
36ZSTDDIR=	${SRCTOP}/sys/contrib/zstd
37.PATH:	${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \
38	${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \
39	${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib
40
41# Work around for LLVM bug 35023, https://bugs.llvm.org/show_bug.cgi?id=35023
42.if ${MACHINE_ARCH:Marm*} != ""
43CFLAGS.zstd_compress.c+= -O0
44.endif
45
46# Work around lack of __bswap[sd]i2() intrinsics on riscv.  Probably should be
47# added to one of the runtime C libraries instead.
48.if ${MACHINE_CPUARCH} == "riscv"
49.PATH:	${ZSTDDIR}/lib/freebsd
50SRCS+=	zstd_kfreebsd.c
51.endif
52
53.include <bsd.lib.mk>
54