xref: /freebsd/sys/modules/ossl/Makefile (revision 4719366192d306a76e8e86bf926387f1c4122fd3)
1
2.PATH:	${SRCTOP}/sys/crypto/openssl
3.PATH:	${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH}
4
5KMOD=	ossl
6OBJS+=	${OBJS.${MACHINE_CPUARCH}}
7SRCS=	bus_if.h \
8	cryptodev_if.h \
9	device_if.h \
10	ossl.c \
11	ossl_aes.c \
12	ossl_chacha20.c \
13	ossl_poly1305.c \
14	ossl_sha1.c \
15	ossl_sha256.c \
16	ossl_sha512.c \
17	${SRCS.${MACHINE_CPUARCH}}
18
19SRCS.arm= \
20	aes-armv4.S \
21	bsaes-armv7.S \
22	chacha-armv4.S \
23	ghash-armv4.S \
24	poly1305-armv4.S  \
25	sha1-armv4-large.S \
26	sha256-armv4.S \
27	sha512-armv4.S \
28	ossl_arm.c \
29	ossl_aes_gcm.c
30
31SRCS.aarch64= \
32	chacha-armv8.S \
33	poly1305-armv8.S \
34	sha1-armv8.S \
35	sha256-armv8.S \
36	sha512-armv8.S \
37	vpaes-armv8.S \
38	ossl_aarch64.c
39
40SRCS.amd64= \
41	aes-gcm-avx512.S \
42	aesni-x86_64.S \
43	aesni-gcm-x86_64.S \
44	chacha-x86_64.S \
45	ghash-x86_64.S \
46	poly1305-x86_64.S \
47	sha1-x86_64.S \
48	sha256-x86_64.S \
49	sha512-x86_64.S \
50	ossl_aes_gcm.c \
51	ossl_x86.c
52
53SRCS.i386= \
54	aesni-x86.S \
55	chacha-x86.S \
56	poly1305-x86.S \
57	sha1-586.S \
58	sha256-586.S \
59	sha512-586.S \
60	ossl_x86.c
61
62SRCS.powerpc64le= \
63	ossl_ppccap.c \
64	aes-ppc.S \
65	aesp8-ppc.S \
66	chacha-ppc.S \
67	ecp_nistz256-ppc64.S \
68	ghashp8-ppc.S \
69	keccak1600-ppc64.S \
70	poly1305-ppc.S \
71	poly1305-ppcfp.S \
72	ppc-mont.S \
73	ppc.S \
74	ppccpuid.S \
75	sha1-ppc.S \
76	sha256-ppc.S \
77	sha256p8-ppc.S \
78	sha512-ppc.S \
79	sha512p8-ppc.S \
80	vpaes-ppc.S \
81	x25519-ppc64.S
82
83SRCS.powerpc64= \
84	ossl_ppccap.c \
85	aes-ppc.S \
86	aesp8-ppc.S \
87	chacha-ppc.S \
88	ecp_nistz256-ppc64.S \
89	ghashp8-ppc.S \
90	keccak1600-ppc64.S \
91	poly1305-ppc.S \
92	poly1305-ppcfp.S \
93	ppc-mont.S \
94	ppc.S \
95	ppccpuid.S \
96	sha1-ppc.S \
97	sha256-ppc.S \
98	sha256p8-ppc.S \
99	sha512-ppc.S \
100	sha512p8-ppc.S \
101	vpaes-ppc.S \
102	x25519-ppc64.S
103
104CFLAGS.bsaes-armv7.S+=	-D__KERNEL__
105
106CFLAGS+= -I${SRCTOP}/sys/crypto/openssl
107
108# For arm64, we are forced to rewrite the compiler invocation for the assembly
109# files, to remove -mgeneral-regs-only.
110${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
111	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC}
112	${CTFCONVERT_CMD}
113
114# Based on modules/armv8crypto/Makefile.
115# Clang doesn't recognize "aes*" instructions without -march set.
116aesv8-armx.o: aesv8-armx.S
117	${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \
118	    -march=armv8-a+crypto ${.IMPSRC}
119	${CTFCONVERT_CMD}
120
121OBJS.aarch64= aesv8-armx.o
122
123.include <bsd.kmod.mk>
124