xref: /freebsd-14.2/sys/modules/blake2/Makefile (revision 031beb4e)
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