xref: /freebsd-14.2/sys/modules/ossl/Makefile (revision 0b9dffed)
1ba610be9SJohn Baldwin
2ba610be9SJohn Baldwin.PATH:	${SRCTOP}/sys/crypto/openssl
3ba610be9SJohn Baldwin.PATH:	${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH}
4ba610be9SJohn Baldwin
5ba610be9SJohn BaldwinKMOD=	ossl
6197ff4c3SKornel DulebaOBJS+=	${OBJS.${MACHINE_CPUARCH}}
7ba610be9SJohn BaldwinSRCS=	bus_if.h \
8ba610be9SJohn Baldwin	cryptodev_if.h \
9ba610be9SJohn Baldwin	device_if.h \
10ba610be9SJohn Baldwin	ossl.c \
11197ff4c3SKornel Duleba	ossl_aes.c \
1292aecd1eSJohn Baldwin	ossl_chacha20.c \
13a079e38bSJohn Baldwin	ossl_poly1305.c \
14ba610be9SJohn Baldwin	ossl_sha1.c \
15ba610be9SJohn Baldwin	ossl_sha256.c \
16ba610be9SJohn Baldwin	ossl_sha512.c \
17ba610be9SJohn Baldwin	${SRCS.${MACHINE_CPUARCH}}
18ba610be9SJohn Baldwin
1915e12749SMark JohnstonSRCS.arm= \
2015e12749SMark Johnston	aes-armv4.S \
2115e12749SMark Johnston	bsaes-armv7.S \
2215e12749SMark Johnston	chacha-armv4.S \
233166bb7cSMark Johnston	ghash-armv4.S \
2415e12749SMark Johnston	poly1305-armv4.S  \
2515e12749SMark Johnston	sha1-armv4-large.S \
2615e12749SMark Johnston	sha256-armv4.S \
2715e12749SMark Johnston	sha512-armv4.S \
283166bb7cSMark Johnston	ossl_arm.c \
293166bb7cSMark Johnston	ossl_aes_gcm.c
3015e12749SMark Johnston
3122bd0c97SMitchell HorneSRCS.aarch64= \
3292aecd1eSJohn Baldwin	chacha-armv8.S \
33a079e38bSJohn Baldwin	poly1305-armv8.S \
3422bd0c97SMitchell Horne	sha1-armv8.S \
3522bd0c97SMitchell Horne	sha256-armv8.S \
3622bd0c97SMitchell Horne	sha512-armv8.S \
37197ff4c3SKornel Duleba	vpaes-armv8.S \
3822bd0c97SMitchell Horne	ossl_aarch64.c
3922bd0c97SMitchell Horne
40ba610be9SJohn BaldwinSRCS.amd64= \
419a3444d9SMark Johnston	aes-gcm-avx512.S \
42197ff4c3SKornel Duleba	aesni-x86_64.S \
439b1d8728SMark Johnston	aesni-gcm-x86_64.S \
4492aecd1eSJohn Baldwin	chacha-x86_64.S \
459b1d8728SMark Johnston	ghash-x86_64.S \
46a079e38bSJohn Baldwin	poly1305-x86_64.S \
47ba610be9SJohn Baldwin	sha1-x86_64.S \
48ba610be9SJohn Baldwin	sha256-x86_64.S \
49fd86ae68SMitchell Horne	sha512-x86_64.S \
509a3444d9SMark Johnston	ossl_aes_gcm.c \
51fd86ae68SMitchell Horne	ossl_x86.c
52ba610be9SJohn Baldwin
53ba610be9SJohn BaldwinSRCS.i386= \
54197ff4c3SKornel Duleba	aesni-x86.S \
5592aecd1eSJohn Baldwin	chacha-x86.S \
56a079e38bSJohn Baldwin	poly1305-x86.S \
57ba610be9SJohn Baldwin	sha1-586.S \
58ba610be9SJohn Baldwin	sha256-586.S \
59fd86ae68SMitchell Horne	sha512-586.S \
60fd86ae68SMitchell Horne	ossl_x86.c
61ba610be9SJohn Baldwin
6215e12749SMark JohnstonCFLAGS.bsaes-armv7.S+=	-D__KERNEL__
6315e12749SMark Johnston
64*0b9dffedSMark JohnstonCFLAGS+= -I${SRCTOP}/sys/crypto/openssl
65*0b9dffedSMark Johnston
6622bd0c97SMitchell Horne# For arm64, we are forced to rewrite the compiler invocation for the assembly
6722bd0c97SMitchell Horne# files, to remove -mgeneral-regs-only.
6822bd0c97SMitchell Horne${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
6922bd0c97SMitchell Horne	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC}
7022bd0c97SMitchell Horne	${CTFCONVERT_CMD}
7122bd0c97SMitchell Horne
72197ff4c3SKornel Duleba# Based on modules/armv8crypto/Makefile.
73197ff4c3SKornel Duleba# Clang doesn't recognize "aes*" instructions without -march set.
74197ff4c3SKornel Dulebaaesv8-armx.o: aesv8-armx.S
75197ff4c3SKornel Duleba	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \
76197ff4c3SKornel Duleba	    -march=armv8-a+crypto ${.IMPSRC}
77197ff4c3SKornel Duleba	${CTFCONVERT_CMD}
78197ff4c3SKornel Duleba
79197ff4c3SKornel DulebaOBJS.aarch64= aesv8-armx.o
80197ff4c3SKornel Duleba
81ba610be9SJohn Baldwin.include <bsd.kmod.mk>
82