]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/modules/ossl/Makefile
zfs: merge openzfs/zfs@86e115e21
[FreeBSD/FreeBSD.git] / sys / modules / ossl / Makefile
1
2 .PATH:  ${SRCTOP}/sys/crypto/openssl
3 .PATH:  ${SRCTOP}/sys/crypto/openssl/${MACHINE_CPUARCH}
4
5 KMOD=   ossl
6 OBJS+=  ${OBJS.${MACHINE_CPUARCH}}
7 SRCS=   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
19 SRCS.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
31 SRCS.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
40 SRCS.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
53 SRCS.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
62 CFLAGS.bsaes-armv7.S+=  -D__KERNEL__
63
64 CFLAGS+= -I${SRCTOP}/sys/crypto/openssl
65
66 # For arm64, we are forced to rewrite the compiler invocation for the assembly
67 # files, to remove -mgeneral-regs-only.
68 ${SRCS.aarch64:M*.S:S/S/o/}: ${.TARGET:R}.S
69         ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} ${.IMPSRC}
70         ${CTFCONVERT_CMD}
71
72 # Based on modules/armv8crypto/Makefile.
73 # Clang doesn't recognize "aes*" instructions without -march set.
74 aesv8-armx.o: aesv8-armx.S
75         ${CC} -c ${CFLAGS:N-mgeneral-regs-only} ${WERROR} ${PROF} \
76             -march=armv8-a+crypto ${.IMPSRC}
77         ${CTFCONVERT_CMD}
78
79 OBJS.aarch64= aesv8-armx.o
80
81 .include <bsd.kmod.mk>