xref: /freebsd/lib/libzstd/Makefile (revision c0d9a07101a1e72769ee0619a583f63a078fb391)
19c401bf1SLexi WinterPACKAGE=	zstd
29c401bf1SLexi WinterLIB_PACKAGE=
39c401bf1SLexi Winter
4e2290905SBaptiste DaroussinLIB=	zstd
5e2290905SBaptiste DaroussinSRCS=	entropy_common.c \
6e2290905SBaptiste Daroussin	error_private.c \
7e2290905SBaptiste Daroussin	fse_decompress.c \
8e2290905SBaptiste Daroussin	pool.c \
9e2290905SBaptiste Daroussin	threading.c \
10e2290905SBaptiste Daroussin	xxhash.c \
11e2290905SBaptiste Daroussin	zstd_common.c \
12e2290905SBaptiste Daroussin	fse_compress.c \
13e2290905SBaptiste Daroussin	huf_compress.c \
14e2290905SBaptiste Daroussin	zstd_compress.c \
154d3f1eafSConrad Meyer	zstd_compress_literals.c \
164d3f1eafSConrad Meyer	zstd_compress_sequences.c \
1737f1f268SConrad Meyer	zstd_compress_superblock.c \
18*c0d9a071SXin LI	zstd_preSplit.c \
19e2290905SBaptiste Daroussin	zstdmt_compress.c \
20e2290905SBaptiste Daroussin	huf_decompress.c \
21a0483764SConrad Meyer	zstd_ddict.c \
22e2290905SBaptiste Daroussin	zstd_decompress.c \
23a0483764SConrad Meyer	zstd_decompress_block.c \
24e2290905SBaptiste Daroussin	zbuff_common.c \
25e2290905SBaptiste Daroussin	zbuff_compress.c \
26e2290905SBaptiste Daroussin	zbuff_decompress.c \
27e2290905SBaptiste Daroussin	cover.c \
28e2290905SBaptiste Daroussin	divsufsort.c \
2904ac1c64SBaptiste Daroussin	zdict.c \
3004ac1c64SBaptiste Daroussin	zstd_fast.c \
3104ac1c64SBaptiste Daroussin	zstd_lazy.c \
3204ac1c64SBaptiste Daroussin	zstd_ldm.c \
3304ac1c64SBaptiste Daroussin	zstd_opt.c \
340f743729SConrad Meyer	zstd_double_fast.c \
350f743729SConrad Meyer	debug.c \
360f743729SConrad Meyer	hist.c \
370f743729SConrad Meyer	fastcover.c
38ecebb3ccSKyle EvansWARNS?=	2
39e2290905SBaptiste DaroussinINCS=	zstd.h
401fc317e3SBaptiste DaroussinCFLAGS+=	-I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \
4198689d0fSConrad Meyer		-DZSTD_MULTITHREAD=1 -fvisibility=hidden
421fc317e3SBaptiste DaroussinLIBADD=	pthread
43e2290905SBaptiste Daroussin
444101bcfaSJessica Clarke# ZSTD_ASM_SUPPORTED is 0 on FreeBSD but 1 on macOS and Linux. Since we build
454101bcfaSJessica Clarke# this as a bootstrap library and don't include any assembly sources in SRCS,
464101bcfaSJessica Clarke# explicitly disable assembly.
474101bcfaSJessica ClarkeCFLAGS+=	-DZSTD_DISABLE_ASM
484101bcfaSJessica Clarke
49e2290905SBaptiste DaroussinPRIVATELIB=	yes
50e2290905SBaptiste Daroussin
510c16b537SWarner LoshZSTDDIR=	${SRCTOP}/sys/contrib/zstd
52e2290905SBaptiste Daroussin.PATH:	${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \
53e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \
54e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib
55e2290905SBaptiste Daroussin
564d3f1eafSConrad Meyer.include <bsd.compiler.mk>
574d3f1eafSConrad Meyer
58*c0d9a071SXin LI# These symbols are needed by dll-linked CLI zstd(1).
59*c0d9a071SXin LICFLAGS.pool.c+=		-fvisibility=default
60*c0d9a071SXin LI
615f2aca83SDimitry AndricCFLAGS.huf_decompress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
625f2aca83SDimitry Andric
634d3f1eafSConrad Meyer# https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1]
644d3f1eafSConrad Meyer# "Note that [GCC] autovectorization still does not do a good job on the
654d3f1eafSConrad Meyer# optimized version, so it's turned off via attribute and flag.  I found
664d3f1eafSConrad Meyer# that neither attribute nor command-line flag were entirely successful in
674d3f1eafSConrad Meyer# turning off vectorization, which is why there were both."
684d3f1eafSConrad Meyer.if ${COMPILER_TYPE} == "gcc"
694d3f1eafSConrad MeyerCFLAGS.zstd_decompress_block.c+=	-fno-tree-vectorize
704d3f1eafSConrad Meyer.endif
714d3f1eafSConrad Meyer
7222aec4deSConrad Meyer# Work around lack of __bswap[sd]i2() intrinsics on riscv.  Probably should be
7322aec4deSConrad Meyer# added to one of the runtime C libraries instead.
7422aec4deSConrad Meyer.if ${MACHINE_CPUARCH} == "riscv"
7522aec4deSConrad Meyer.PATH:	${ZSTDDIR}/lib/freebsd
7622aec4deSConrad MeyerSRCS+=	zstd_kfreebsd.c
7722aec4deSConrad Meyer.endif
7822aec4deSConrad Meyer
79e2290905SBaptiste Daroussin.include <bsd.lib.mk>
80