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