diff options
Diffstat (limited to 'lib/libzstd/Makefile')
-rw-r--r-- | lib/libzstd/Makefile | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/lib/libzstd/Makefile b/lib/libzstd/Makefile new file mode 100644 index 000000000000..0e25f01d4881 --- /dev/null +++ b/lib/libzstd/Makefile @@ -0,0 +1,73 @@ +LIB= zstd +SRCS= entropy_common.c \ + error_private.c \ + fse_decompress.c \ + pool.c \ + threading.c \ + xxhash.c \ + zstd_common.c \ + fse_compress.c \ + huf_compress.c \ + zstd_compress.c \ + zstd_compress_literals.c \ + zstd_compress_sequences.c \ + zstd_compress_superblock.c \ + zstdmt_compress.c \ + huf_decompress.c \ + zstd_ddict.c \ + zstd_decompress.c \ + zstd_decompress_block.c \ + zbuff_common.c \ + zbuff_compress.c \ + zbuff_decompress.c \ + cover.c \ + divsufsort.c \ + zdict.c \ + zstd_fast.c \ + zstd_lazy.c \ + zstd_ldm.c \ + zstd_opt.c \ + zstd_double_fast.c \ + debug.c \ + hist.c \ + fastcover.c +WARNS?= 2 +INCS= zstd.h +CFLAGS+= -I${ZSTDDIR}/lib -I${ZSTDDIR}/lib/common -DXXH_NAMESPACE=ZSTD_ \ + -DZSTD_MULTITHREAD=1 -fvisibility=hidden +LIBADD= pthread + +# ZSTD_ASM_SUPPORTED is 0 on FreeBSD but 1 on macOS and Linux. Since we build +# this as a bootstrap library and don't include any assembly sources in SRCS, +# explicitly disable assembly. +CFLAGS+= -DZSTD_DISABLE_ASM + +PRIVATELIB= yes +PACKAGE= runtime + +ZSTDDIR= ${SRCTOP}/sys/contrib/zstd +.PATH: ${ZSTDDIR}/lib/common ${ZSTDDIR}/lib/compress \ + ${ZSTDDIR}/lib/decompress ${ZSTDDIR}/lib/deprecated \ + ${ZSTDDIR}/lib/dictBuilder ${ZSTDDIR}/lib + +.include <bsd.compiler.mk> + +CFLAGS.huf_decompress.c+= ${NO_WBITWISE_INSTEAD_OF_LOGICAL} + +# https://github.com/facebook/zstd/commit/812e8f2a [zstd 1.4.1] +# "Note that [GCC] autovectorization still does not do a good job on the +# optimized version, so it's turned off via attribute and flag. I found +# that neither attribute nor command-line flag were entirely successful in +# turning off vectorization, which is why there were both." +.if ${COMPILER_TYPE} == "gcc" +CFLAGS.zstd_decompress_block.c+= -fno-tree-vectorize +.endif + +# Work around lack of __bswap[sd]i2() intrinsics on riscv. Probably should be +# added to one of the runtime C libraries instead. +.if ${MACHINE_CPUARCH} == "riscv" +.PATH: ${ZSTDDIR}/lib/freebsd +SRCS+= zstd_kfreebsd.c +.endif + +.include <bsd.lib.mk> |