xref: /freebsd/lib/libzstd/Makefile (revision 9c401bf14854ef20e5e187395a686b0d1b7bcb5f)
1*9c401bf1SLexi WinterPACKAGE=	zstd
2*9c401bf1SLexi WinterLIB_PACKAGE=
3*9c401bf1SLexi 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 \
18e2290905SBaptiste Daroussin	zstdmt_compress.c \
19e2290905SBaptiste Daroussin	huf_decompress.c \
20a0483764SConrad Meyer	zstd_ddict.c \
21e2290905SBaptiste Daroussin	zstd_decompress.c \
22a0483764SConrad Meyer	zstd_decompress_block.c \
23e2290905SBaptiste Daroussin	zbuff_common.c \
24e2290905SBaptiste Daroussin	zbuff_compress.c \
25e2290905SBaptiste Daroussin	zbuff_decompress.c \
26e2290905SBaptiste Daroussin	cover.c \
27e2290905SBaptiste Daroussin	divsufsort.c \
2804ac1c64SBaptiste Daroussin	zdict.c \
2904ac1c64SBaptiste Daroussin	zstd_fast.c \
3004ac1c64SBaptiste Daroussin	zstd_lazy.c \
3104ac1c64SBaptiste Daroussin	zstd_ldm.c \
3204ac1c64SBaptiste Daroussin	zstd_opt.c \
330f743729SConrad Meyer	zstd_double_fast.c \
340f743729SConrad Meyer	debug.c \
350f743729SConrad Meyer	hist.c \
360f743729SConrad Meyer	fastcover.c
37ecebb3ccSKyle EvansWARNS?=	2
38e2290905SBaptiste DaroussinINCS=	zstd.h
391fc317e3SBaptiste DaroussinCFLAGS+=	-I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \
4098689d0fSConrad Meyer		-DZSTD_MULTITHREAD=1 -fvisibility=hidden
411fc317e3SBaptiste DaroussinLIBADD=	pthread
42e2290905SBaptiste Daroussin
434101bcfaSJessica Clarke# ZSTD_ASM_SUPPORTED is 0 on FreeBSD but 1 on macOS and Linux. Since we build
444101bcfaSJessica Clarke# this as a bootstrap library and don't include any assembly sources in SRCS,
454101bcfaSJessica Clarke# explicitly disable assembly.
464101bcfaSJessica ClarkeCFLAGS+=	-DZSTD_DISABLE_ASM
474101bcfaSJessica Clarke
48e2290905SBaptiste DaroussinPRIVATELIB=	yes
49e2290905SBaptiste Daroussin
500c16b537SWarner LoshZSTDDIR=	${SRCTOP}/sys/contrib/zstd
51e2290905SBaptiste Daroussin.PATH:	${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \
52e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \
53e2290905SBaptiste Daroussin	${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib
54e2290905SBaptiste Daroussin
554d3f1eafSConrad Meyer.include <bsd.compiler.mk>
564d3f1eafSConrad Meyer
575f2aca83SDimitry AndricCFLAGS.huf_decompress.c+=	${NO_WBITWISE_INSTEAD_OF_LOGICAL}
585f2aca83SDimitry Andric
594d3f1eafSConrad Meyer# https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1]
604d3f1eafSConrad Meyer# "Note that [GCC] autovectorization still does not do a good job on the
614d3f1eafSConrad Meyer# optimized version, so it's turned off via attribute and flag.  I found
624d3f1eafSConrad Meyer# that neither attribute nor command-line flag were entirely successful in
634d3f1eafSConrad Meyer# turning off vectorization, which is why there were both."
644d3f1eafSConrad Meyer.if ${COMPILER_TYPE} == "gcc"
654d3f1eafSConrad MeyerCFLAGS.zstd_decompress_block.c+=	-fno-tree-vectorize
664d3f1eafSConrad Meyer.endif
674d3f1eafSConrad Meyer
6822aec4deSConrad Meyer# Work around lack of __bswap[sd]i2() intrinsics on riscv.  Probably should be
6922aec4deSConrad Meyer# added to one of the runtime C libraries instead.
7022aec4deSConrad Meyer.if ${MACHINE_CPUARCH} == "riscv"
7122aec4deSConrad Meyer.PATH:	${ZSTDDIR}/lib/freebsd
7222aec4deSConrad MeyerSRCS+=	zstd_kfreebsd.c
7322aec4deSConrad Meyer.endif
7422aec4deSConrad Meyer
75e2290905SBaptiste Daroussin.include <bsd.lib.mk>
76