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