10e33efe4SConrad Meyer 20e33efe4SConrad Meyer.PATH: ${SRCTOP}/sys/contrib/libb2 30e33efe4SConrad Meyer.PATH: ${SRCTOP}/sys/crypto/blake2 40e33efe4SConrad Meyer.PATH: ${SRCTOP}/sys/opencrypto 5*0b57cec5SDimitry Andric.PATH: ${SRCTOP}/contrib/llvm-project/clang/lib/Headers 60e33efe4SConrad Meyer 70e33efe4SConrad MeyerKMOD = blake2 80e33efe4SConrad Meyer 90e33efe4SConrad Meyer# Vendor sources 100e33efe4SConrad MeyerSRCS += blake2.h 110e33efe4SConrad MeyerSRCS += blake2-impl.h 120e33efe4SConrad MeyerSRCS += blake2-config.h 130e33efe4SConrad Meyer 140e33efe4SConrad MeyerSRCS += blake2-dispatch.c 150e33efe4SConrad MeyerSRCS += blake2bp.c 160e33efe4SConrad MeyerSRCS += blake2sp.c 170e33efe4SConrad Meyer 180e33efe4SConrad MeyerCFLAGS += -I${SRCTOP}/sys/contrib/libb2 190e33efe4SConrad MeyerCFLAGS += -I${SRCTOP}/sys/crypto/blake2 200e33efe4SConrad Meyer 210e33efe4SConrad Meyer# x86 specific optimization headers: 220e33efe4SConrad MeyerSRCS += blake2b-load-sse2.h 230e33efe4SConrad MeyerSRCS += blake2b-load-sse41.h 240e33efe4SConrad MeyerSRCS += blake2b-round.h 250e33efe4SConrad Meyer 260e33efe4SConrad MeyerSRCS += blake2s-load-sse2.h 270e33efe4SConrad MeyerSRCS += blake2s-load-sse41.h 280e33efe4SConrad MeyerSRCS += blake2s-load-xop.h 290e33efe4SConrad MeyerSRCS += blake2s-round.h 300e33efe4SConrad Meyer 310e33efe4SConrad Meyer# C files to build a dispatched fat implementation on x86 320e33efe4SConrad MeyerSRCS_IN += blake2b-sse2.c 330e33efe4SConrad MeyerSRCS_IN += blake2b-ssse3.c 340e33efe4SConrad MeyerSRCS_IN += blake2b-sse41.c 350e33efe4SConrad MeyerSRCS_IN += blake2b-avx.c 360e33efe4SConrad MeyerSRCS_IN += blake2b-xop.c 370e33efe4SConrad MeyerSRCS_IN += blake2s-sse2.c 380e33efe4SConrad MeyerSRCS_IN += blake2s-ssse3.c 390e33efe4SConrad MeyerSRCS_IN += blake2s-sse41.c 400e33efe4SConrad MeyerSRCS_IN += blake2s-avx.c 410e33efe4SConrad MeyerSRCS_IN += blake2s-xop.c 420e33efe4SConrad Meyer 430e33efe4SConrad MeyerOBJS+= ${SRCS_IN:S/.c/.o/g} 440e33efe4SConrad Meyer 450e33efe4SConrad MeyerCFLAGS.blake2b-sse2.c += -DSUFFIX=_sse2 -msse2 460e33efe4SConrad MeyerCFLAGS.blake2s-sse2.c += -DSUFFIX=_sse2 -msse2 470e33efe4SConrad Meyer 480e33efe4SConrad MeyerCFLAGS.blake2b-ssse3.c += -DSUFFIX=_ssse3 -msse2 -mssse3 490e33efe4SConrad MeyerCFLAGS.blake2s-ssse3.c += -DSUFFIX=_ssse3 -msse2 -mssse3 500e33efe4SConrad Meyer 510e33efe4SConrad MeyerCFLAGS.blake2b-sse41.c += -DSUFFIX=_sse41 -msse2 -mssse3 -msse4.1 520e33efe4SConrad MeyerCFLAGS.blake2s-sse41.c += -DSUFFIX=_sse41 -msse2 -mssse3 -msse4.1 530e33efe4SConrad Meyer 540e33efe4SConrad MeyerCFLAGS.blake2b-avx.c += -DSUFFIX=_avx -msse2 -mssse3 -msse4.1 -mavx 550e33efe4SConrad MeyerCFLAGS.blake2s-avx.c += -DSUFFIX=_avx -msse2 -mssse3 -msse4.1 -mavx 560e33efe4SConrad Meyer 570e33efe4SConrad MeyerCFLAGS.blake2b-xop.c += -DSUFFIX=_xop -msse2 -mssse3 -msse4.1 -mavx -mxop 580e33efe4SConrad MeyerCFLAGS.blake2s-xop.c += -DSUFFIX=_xop -msse2 -mssse3 -msse4.1 -mavx -mxop 590e33efe4SConrad Meyer 600e33efe4SConrad Meyer.for src in ${SRCS_IN} 610e33efe4SConrad Meyer${src:S/.c/.o/}: ${src} 620e33efe4SConrad Meyer ${CC} -c ${CFLAGS:N-nostdinc} ${CFLAGS.${src}} ${WERROR} ${PROF} \ 633b8d52d3SConrad Meyer -D_MM_MALLOC_H_INCLUDED -Wno-unused-function ${.IMPSRC} 640e33efe4SConrad Meyer ${CTFCONVERT_CMD} 650e33efe4SConrad Meyer 660e33efe4SConrad Meyer${src:S/.c/.o/}: intrin.h emmintrin.h tmmintrin.h smmintrin.h immintrin.h \ 670e33efe4SConrad Meyer x86intrin.h ${SRCS:M*.h} 680e33efe4SConrad Meyer.endfor 690e33efe4SConrad Meyer 700e33efe4SConrad Meyer# FreeBSD-specific sources: 710e33efe4SConrad MeyerSRCS += blake2_kfreebsd.h 720e33efe4SConrad MeyerSRCS += config.h 730e33efe4SConrad Meyer 740e33efe4SConrad MeyerSRCS += stddef.h 750e33efe4SConrad MeyerSRCS += stdint.h 760e33efe4SConrad MeyerSRCS += stdio.h 770e33efe4SConrad MeyerSRCS += stdlib.h 780e33efe4SConrad MeyerSRCS += string.h 790e33efe4SConrad Meyer 800e33efe4SConrad MeyerSRCS += blake2_cryptodev.c 810e33efe4SConrad Meyer 82bf8e3513SLi-Wen HsuSRCS += opt_param.h cryptodev_if.h bus_if.h device_if.h 830e33efe4SConrad Meyer 840e33efe4SConrad MeyerWARNS ?= 6 850e33efe4SConrad Meyer 860e33efe4SConrad Meyer.include <bsd.kmod.mk> 870e33efe4SConrad Meyer 883b8d52d3SConrad MeyerCWARNFLAGS.blake2-dispatch.c += -Wno-unused-const-variable 89cccc969bSMatt MacyCWARNFLAGS.blake2s-ref.c += -Wno-cast-qual -Wno-unused-function 903b8d52d3SConrad MeyerCWARNFLAGS += -Wno-cast-qual 91