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