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