1PACKAGE= zstd 2LIB_PACKAGE= 3 4LIB= zstd 5SRCS= entropy_common.c \ 6 error_private.c \ 7 fse_decompress.c \ 8 pool.c \ 9 threading.c \ 10 xxhash.c \ 11 zstd_common.c \ 12 fse_compress.c \ 13 huf_compress.c \ 14 zstd_compress.c \ 15 zstd_compress_literals.c \ 16 zstd_compress_sequences.c \ 17 zstd_compress_superblock.c \ 18 zstd_preSplit.c \ 19 zstdmt_compress.c \ 20 huf_decompress.c \ 21 zstd_ddict.c \ 22 zstd_decompress.c \ 23 zstd_decompress_block.c \ 24 zbuff_common.c \ 25 zbuff_compress.c \ 26 zbuff_decompress.c \ 27 cover.c \ 28 divsufsort.c \ 29 zdict.c \ 30 zstd_fast.c \ 31 zstd_lazy.c \ 32 zstd_ldm.c \ 33 zstd_opt.c \ 34 zstd_double_fast.c \ 35 debug.c \ 36 hist.c \ 37 fastcover.c 38WARNS?= 2 39INCS= zstd.h 40CFLAGS+= -I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \ 41 -DZSTD_MULTITHREAD=1 -fvisibility=hidden 42LIBADD= pthread 43 44# ZSTD_ASM_SUPPORTED is 0 on FreeBSD but 1 on macOS and Linux. Since we build 45# this as a bootstrap library and don't include any assembly sources in SRCS, 46# explicitly disable assembly. 47CFLAGS+= -DZSTD_DISABLE_ASM 48 49PRIVATELIB= yes 50 51ZSTDDIR= ${SRCTOP}/sys/contrib/zstd 52.PATH: ${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \ 53 ${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \ 54 ${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib 55 56.include <bsd.compiler.mk> 57 58# These symbols are needed by dll-linked CLI zstd(1). 59CFLAGS.pool.c+= -fvisibility=default 60 61CFLAGS.huf_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} 62 63# https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1] 64# "Note that [GCC] autovectorization still does not do a good job on the 65# optimized version, so it's turned off via attribute and flag. I found 66# that neither attribute nor command-line flag were entirely successful in 67# turning off vectorization, which is why there were both." 68.if ${COMPILER_TYPE} == "gcc" 69CFLAGS.zstd_decompress_block.c+= -fno-tree-vectorize 70.endif 71 72# Work around lack of __bswap[sd]i2() intrinsics on riscv. Probably should be 73# added to one of the runtime C libraries instead. 74.if ${MACHINE_CPUARCH} == "riscv" 75.PATH: ${ZSTDDIR}/lib/freebsd 76SRCS+= zstd_kfreebsd.c 77.endif 78 79.include <bsd.lib.mk> 80