xref: /freebsd/sys/modules/ossl/Makefile (revision e9ac41698b2f322d55ccf9da50a3596edb2c1800)
1ba610be9SJohn Baldwin.PATH:	${SRCTOP}/sys/crypto/openssl
2ba610be9SJohn Baldwin.PATH:	${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH}
3ba610be9SJohn Baldwin
4ba610be9SJohn BaldwinKMOD=	ossl
5197ff4c3SKornel DulebaOBJS+=	${OBJS.${MACHINE_CPUARCH}}
6ba610be9SJohn BaldwinSRCS=	bus_if.h \
7ba610be9SJohn Baldwin	cryptodev_if.h \
8ba610be9SJohn Baldwin	device_if.h \
9ba610be9SJohn Baldwin	ossl.c \
10197ff4c3SKornel Duleba	ossl_aes.c \
1192aecd1eSJohn Baldwin	ossl_chacha20.c \
12a079e38bSJohn Baldwin	ossl_poly1305.c \
13ba610be9SJohn Baldwin	ossl_sha1.c \
14ba610be9SJohn Baldwin	ossl_sha256.c \
15ba610be9SJohn Baldwin	ossl_sha512.c \
16ba610be9SJohn Baldwin	${SRCS.${MACHINE_CPUARCH}}
17ba610be9SJohn Baldwin
1844f8e1e8SMark JohnstonSRCS.arm= \
1944f8e1e8SMark Johnston	aes-armv4.S \
2044f8e1e8SMark Johnston	bsaes-armv7.S \
2144f8e1e8SMark Johnston	chacha-armv4.S \
22629a7237SMark Johnston	ghash-armv4.S \
2344f8e1e8SMark Johnston	poly1305-armv4.S  \
2444f8e1e8SMark Johnston	sha1-armv4-large.S \
2544f8e1e8SMark Johnston	sha256-armv4.S \
2644f8e1e8SMark Johnston	sha512-armv4.S \
27629a7237SMark Johnston	ossl_arm.c \
28629a7237SMark Johnston	ossl_aes_gcm.c
2944f8e1e8SMark Johnston
3022bd0c97SMitchell HorneSRCS.aarch64= \
3192aecd1eSJohn Baldwin	chacha-armv8.S \
32a079e38bSJohn Baldwin	poly1305-armv8.S \
3322bd0c97SMitchell Horne	sha1-armv8.S \
3422bd0c97SMitchell Horne	sha256-armv8.S \
3522bd0c97SMitchell Horne	sha512-armv8.S \
36197ff4c3SKornel Duleba	vpaes-armv8.S \
3722bd0c97SMitchell Horne	ossl_aarch64.c
3822bd0c97SMitchell Horne
39ba610be9SJohn BaldwinSRCS.amd64= \
409a3444d9SMark Johnston	aes-gcm-avx512.S \
41197ff4c3SKornel Duleba	aesni-x86_64.S \
429b1d8728SMark Johnston	aesni-gcm-x86_64.S \
4392aecd1eSJohn Baldwin	chacha-x86_64.S \
449b1d8728SMark Johnston	ghash-x86_64.S \
45a079e38bSJohn Baldwin	poly1305-x86_64.S \
46ba610be9SJohn Baldwin	sha1-x86_64.S \
47ba610be9SJohn Baldwin	sha256-x86_64.S \
48fd86ae68SMitchell Horne	sha512-x86_64.S \
499a3444d9SMark Johnston	ossl_aes_gcm.c \
50fd86ae68SMitchell Horne	ossl_x86.c
51ba610be9SJohn Baldwin
52ba610be9SJohn BaldwinSRCS.i386= \
53197ff4c3SKornel Duleba	aesni-x86.S \
5492aecd1eSJohn Baldwin	chacha-x86.S \
55a079e38bSJohn Baldwin	poly1305-x86.S \
56ba610be9SJohn Baldwin	sha1-586.S \
57ba610be9SJohn Baldwin	sha256-586.S \
58fd86ae68SMitchell Horne	sha512-586.S \
59fd86ae68SMitchell Horne	ossl_x86.c
60ba610be9SJohn Baldwin
61*3465f14dSShawn AnastasioSRCS.powerpc64le= \
62*3465f14dSShawn Anastasio	ossl_ppccap.c \
63*3465f14dSShawn Anastasio	aes-ppc.S \
64*3465f14dSShawn Anastasio	aesp8-ppc.S \
65*3465f14dSShawn Anastasio	chacha-ppc.S \
66*3465f14dSShawn Anastasio	ecp_nistz256-ppc64.S \
67*3465f14dSShawn Anastasio	ghashp8-ppc.S \
68*3465f14dSShawn Anastasio	keccak1600-ppc64.S \
69*3465f14dSShawn Anastasio	poly1305-ppc.S \
70*3465f14dSShawn Anastasio	poly1305-ppcfp.S \
71*3465f14dSShawn Anastasio	ppc-mont.S \
72*3465f14dSShawn Anastasio	ppc.S \
73*3465f14dSShawn Anastasio	ppccpuid.S \
74*3465f14dSShawn Anastasio	sha1-ppc.S \
75*3465f14dSShawn Anastasio	sha256-ppc.S \
76*3465f14dSShawn Anastasio	sha256p8-ppc.S \
77*3465f14dSShawn Anastasio	sha512-ppc.S \
78*3465f14dSShawn Anastasio	sha512p8-ppc.S \
79*3465f14dSShawn Anastasio	vpaes-ppc.S \
80*3465f14dSShawn Anastasio	x25519-ppc64.S
81*3465f14dSShawn Anastasio
82*3465f14dSShawn AnastasioSRCS.powerpc64= \
83*3465f14dSShawn Anastasio	ossl_ppccap.c \
84*3465f14dSShawn Anastasio	aes-ppc.S \
85*3465f14dSShawn Anastasio	aesp8-ppc.S \
86*3465f14dSShawn Anastasio	chacha-ppc.S \
87*3465f14dSShawn Anastasio	ecp_nistz256-ppc64.S \
88*3465f14dSShawn Anastasio	ghashp8-ppc.S \
89*3465f14dSShawn Anastasio	keccak1600-ppc64.S \
90*3465f14dSShawn Anastasio	poly1305-ppc.S \
91*3465f14dSShawn Anastasio	poly1305-ppcfp.S \
92*3465f14dSShawn Anastasio	ppc-mont.S \
93*3465f14dSShawn Anastasio	ppc.S \
94*3465f14dSShawn Anastasio	ppccpuid.S \
95*3465f14dSShawn Anastasio	sha1-ppc.S \
96*3465f14dSShawn Anastasio	sha256-ppc.S \
97*3465f14dSShawn Anastasio	sha256p8-ppc.S \
98*3465f14dSShawn Anastasio	sha512-ppc.S \
99*3465f14dSShawn Anastasio	sha512p8-ppc.S \
100*3465f14dSShawn Anastasio	vpaes-ppc.S \
101*3465f14dSShawn Anastasio	x25519-ppc64.S
102*3465f14dSShawn Anastasio
10344f8e1e8SMark JohnstonCFLAGS.bsaes-armv7.S+=	-D__KERNEL__
10444f8e1e8SMark Johnston
105e655cc70SMark JohnstonCFLAGS+= -I${SRCTOP}/sys/crypto/openssl
106e655cc70SMark Johnston
10722bd0c97SMitchell Horne# For arm64, we are forced to rewrite the compiler invocation for the assembly
10822bd0c97SMitchell Horne# files, to remove -mgeneral-regs-only.
10922bd0c97SMitchell Horne${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
11022bd0c97SMitchell Horne	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC}
11122bd0c97SMitchell Horne	${CTFCONVERT_CMD}
11222bd0c97SMitchell Horne
113197ff4c3SKornel Duleba# Based on modules/armv8crypto/Makefile.
114197ff4c3SKornel Duleba# Clang doesn't recognize "aes*" instructions without -march set.
115197ff4c3SKornel Dulebaaesv8-armx.o: aesv8-armx.S
116197ff4c3SKornel Duleba	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \
117197ff4c3SKornel Duleba	    -march=armv8-a+crypto ${.IMPSRC}
118197ff4c3SKornel Duleba	${CTFCONVERT_CMD}
119197ff4c3SKornel Duleba
120197ff4c3SKornel DulebaOBJS.aarch64= aesv8-armx.o
121197ff4c3SKornel Duleba
122ba610be9SJohn Baldwin.include <bsd.kmod.mk>
123