xref: /freebsd/lib/libzstd/Makefile (revision ecebb3cc1d2d074defc302d8ae6820bb6b20d4fe)
1e2290905SBaptiste Daroussin# $FreeBSD$
2e2290905SBaptiste Daroussin
3e2290905SBaptiste DaroussinLIB=	zstd
4e2290905SBaptiste DaroussinSRCS=	entropy_common.c \
5e2290905SBaptiste Daroussin	error_private.c \
6e2290905SBaptiste Daroussin	fse_decompress.c \
7e2290905SBaptiste Daroussin	pool.c \
8e2290905SBaptiste Daroussin	threading.c \
9e2290905SBaptiste Daroussin	xxhash.c \
10e2290905SBaptiste Daroussin	zstd_common.c \
11e2290905SBaptiste Daroussin	fse_compress.c \
12e2290905SBaptiste Daroussin	huf_compress.c \
13e2290905SBaptiste Daroussin	zstd_compress.c \
144d3f1eafSConrad Meyer	zstd_compress_literals.c \
154d3f1eafSConrad Meyer	zstd_compress_sequences.c \
1637f1f268SConrad Meyer	zstd_compress_superblock.c \
17e2290905SBaptiste Daroussin	zstdmt_compress.c \
18e2290905SBaptiste Daroussin	huf_decompress.c \
19a0483764SConrad Meyer	zstd_ddict.c \
20e2290905SBaptiste Daroussin	zstd_decompress.c \
21a0483764SConrad Meyer	zstd_decompress_block.c \
22e2290905SBaptiste Daroussin	zbuff_common.c \
23e2290905SBaptiste Daroussin	zbuff_compress.c \
24e2290905SBaptiste Daroussin	zbuff_decompress.c \
25e2290905SBaptiste Daroussin	cover.c \
26e2290905SBaptiste Daroussin	divsufsort.c \
2704ac1c64SBaptiste Daroussin	zdict.c \
2804ac1c64SBaptiste Daroussin	zstd_fast.c \
2904ac1c64SBaptiste Daroussin	zstd_lazy.c \
3004ac1c64SBaptiste Daroussin	zstd_ldm.c \
3104ac1c64SBaptiste Daroussin	zstd_opt.c \
320f743729SConrad Meyer	zstd_double_fast.c \
330f743729SConrad Meyer	debug.c \
340f743729SConrad Meyer	hist.c \
350f743729SConrad Meyer	fastcover.c
36*ecebb3ccSKyle EvansWARNS?=	2
37e2290905SBaptiste DaroussinINCS=	zstd.h
381fc317e3SBaptiste DaroussinCFLAGS+=	-I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \
391fc317e3SBaptiste Daroussin		-DZSTD_MULTITHREAD=1
401fc317e3SBaptiste DaroussinLIBADD=	pthread
41e2290905SBaptiste Daroussin
42e2290905SBaptiste DaroussinPRIVATELIB=	yes
43e2290905SBaptiste Daroussin
440c16b537SWarner LoshZSTDDIR=	${SRCTOP}/sys/contrib/zstd
45e2290905SBaptiste Daroussin.PATH:	${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \
46e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \
47e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib
48e2290905SBaptiste Daroussin
494d3f1eafSConrad Meyer.include <bsd.compiler.mk>
504d3f1eafSConrad Meyer
514d3f1eafSConrad Meyer# https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1]
524d3f1eafSConrad Meyer# "Note that [GCC] autovectorization still does not do a good job on the
534d3f1eafSConrad Meyer# optimized version, so it's turned off via attribute and flag.  I found
544d3f1eafSConrad Meyer# that neither attribute nor command-line flag were entirely successful in
554d3f1eafSConrad Meyer# turning off vectorization, which is why there were both."
564d3f1eafSConrad Meyer.if ${COMPILER_TYPE} == "gcc"
574d3f1eafSConrad MeyerCFLAGS.zstd_decompress_block.c+=	-fno-tree-vectorize
584d3f1eafSConrad Meyer.endif
594d3f1eafSConrad Meyer
6022aec4deSConrad Meyer# Work around lack of __bswap[sd]i2() intrinsics on riscv.  Probably should be
6122aec4deSConrad Meyer# added to one of the runtime C libraries instead.
6222aec4deSConrad Meyer.if ${MACHINE_CPUARCH} == "riscv"
6322aec4deSConrad Meyer.PATH:	${ZSTDDIR}/lib/freebsd
6422aec4deSConrad MeyerSRCS+=	zstd_kfreebsd.c
6522aec4deSConrad Meyer.endif
6622aec4deSConrad Meyer
67e2290905SBaptiste Daroussin.include <bsd.lib.mk>
68