1 1.8 riastrad # $NetBSD: Makefile,v 1.8 2025/11/22 22:32:39 riastradh Exp $ 2 1.1 riastrad 3 1.1 riastrad .include <bsd.own.mk> 4 1.1 riastrad 5 1.1 riastrad TESTSDIR= ${TESTSBASE}/sys/crypto/aes 6 1.1 riastrad 7 1.1 riastrad TESTS_C= t_aes 8 1.1 riastrad 9 1.3 riastrad AFLAGS+= -D_LOCORE 10 1.3 riastrad 11 1.1 riastrad .PATH: ${NETBSDSRCDIR}/sys/crypto/aes 12 1.1 riastrad CPPFLAGS+= -I${NETBSDSRCDIR}/sys 13 1.1 riastrad 14 1.1 riastrad SRCS.t_aes+= t_aes.c 15 1.1 riastrad 16 1.1 riastrad SRCS.t_aes+= aes_bear.c 17 1.1 riastrad SRCS.t_aes+= aes_ct.c 18 1.1 riastrad SRCS.t_aes+= aes_ct_dec.c 19 1.1 riastrad SRCS.t_aes+= aes_ct_enc.c 20 1.8 riastrad SRCS.t_aes+= aes_keysched.c 21 1.1 riastrad SRCS.t_aes+= aes_selftest.c 22 1.1 riastrad 23 1.5 riastrad .if !empty(MACHINE_ARCH:Mearmv7*) || !empty(MACHINE_ARCH:Maarch64*) 24 1.1 riastrad 25 1.1 riastrad .PATH: ${NETBSDSRCDIR}/sys/crypto/aes/arch/arm 26 1.1 riastrad CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/aes/arch/arm 27 1.1 riastrad 28 1.1 riastrad .if !empty(MACHINE_ARCH:Maarch64*) # XXX no AESE/AESD in 32-bit mode yet 29 1.1 riastrad SRCS.t_aes+= aes_armv8.c 30 1.1 riastrad SRCS.t_aes+= aes_armv8_64.S 31 1.1 riastrad .endif 32 1.1 riastrad 33 1.6 jakllsch CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION= ${${ACTIVE_CC} == "clang":? -Wno-nonportable-vector-initialization :} 34 1.6 jakllsch 35 1.1 riastrad SRCS.t_aes+= aes_neon.c 36 1.6 jakllsch COPTS.aes_neon.c+=${CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION} 37 1.1 riastrad SRCS.t_aes+= aes_neon_impl.c 38 1.1 riastrad SRCS.t_aes+= aes_neon_subr.c 39 1.6 jakllsch COPTS.aes_neon_subr.c+=${CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION} 40 1.5 riastrad .if !empty(MACHINE_ARCH:Mearmv7*) 41 1.1 riastrad SRCS.t_aes+= aes_neon_32.S 42 1.1 riastrad .endif 43 1.1 riastrad 44 1.5 riastrad .if !empty(MACHINE_ARCH:Mearmv7*) && empty(MACHINE_ARCH:Mearmv7hf*) 45 1.5 riastrad COPTS.aes_neon.c+= -mfloat-abi=softfp -mfpu=neon 46 1.5 riastrad COPTS.aes_neon_subr.c+= -mfloat-abi=softfp -mfpu=neon 47 1.5 riastrad AOPTS.aes_neon_32.S+= -D__SOFTFP__ 48 1.5 riastrad .endif 49 1.5 riastrad 50 1.1 riastrad .endif # earmv7/aarch64 51 1.1 riastrad 52 1.1 riastrad .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" 53 1.1 riastrad 54 1.1 riastrad .PATH: ${NETBSDSRCDIR}/sys/crypto/aes/arch/x86 55 1.1 riastrad CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/aes/arch/x86 56 1.1 riastrad 57 1.1 riastrad .if ${MACHINE_ARCH} == "x86_64" # XXX no AES-NI in 32-bit mode yet 58 1.1 riastrad SRCS.t_aes+= aes_ni.c 59 1.1 riastrad SRCS.t_aes+= aes_ni_64.S 60 1.1 riastrad .endif 61 1.1 riastrad 62 1.1 riastrad SRCS.t_aes+= aes_sse2.c 63 1.1 riastrad SRCS.t_aes+= aes_sse2_dec.c 64 1.1 riastrad SRCS.t_aes+= aes_sse2_enc.c 65 1.1 riastrad SRCS.t_aes+= aes_sse2_impl.c 66 1.1 riastrad SRCS.t_aes+= aes_sse2_subr.c 67 1.2 riastrad COPTS.aes_sse2.c+= -msse -msse2 68 1.2 riastrad COPTS.aes_sse2_dec.c+= -msse -msse2 69 1.2 riastrad COPTS.aes_sse2_enc.c+= -msse -msse2 70 1.2 riastrad COPTS.aes_sse2_subr.c+= -msse -msse2 71 1.1 riastrad 72 1.1 riastrad SRCS.t_aes+= aes_ssse3.c 73 1.1 riastrad SRCS.t_aes+= aes_ssse3_impl.c 74 1.1 riastrad SRCS.t_aes+= aes_ssse3_subr.c 75 1.2 riastrad COPTS.aes_ssse3.c+= -msse -msse2 -msse3 -mssse3 76 1.2 riastrad COPTS.aes_ssse3_subr.c+= -msse -msse2 -msse3 -mssse3 77 1.1 riastrad 78 1.1 riastrad SRCS.t_aes+= aes_via.c 79 1.1 riastrad 80 1.1 riastrad .endif # x86 81 1.1 riastrad 82 1.1 riastrad WARNS= 5 83 1.1 riastrad 84 1.7 mrg # Many of these are probably GCC bugs, see 85 1.7 mrg # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110878 86 1.7 mrg COPTS.aes_armv8.c+= ${CC_WNO_STRINGOP_OVERREAD} ${CC_WNO_STRINGOP_OVERFLOW} 87 1.7 mrg COPTS.aes_bear.c+= ${CC_WNO_STRINGOP_OVERFLOW} ${CC_WNO_ARRAY_BOUNDS} 88 1.7 mrg COPTS.aes_neon_subr.c+= ${CC_WNO_ARRAY_BOUNDS} 89 1.7 mrg 90 1.7 mrg COPTS.aes_ni.c+= ${CC_WNO_STRINGOP_OVERREAD} ${CC_WNO_STRINGOP_OVERFLOW} 91 1.7 mrg COPTS.aes_sse2_subr.c+= ${CC_WNO_ARRAY_BOUNDS} 92 1.7 mrg COPTS.aes_ssse3_subr.c+=${CC_WNO_ARRAY_BOUNDS} 93 1.7 mrg COPTS.aes_via.c+= ${CC_WNO_ARRAY_BOUNDS} 94 1.7 mrg 95 1.1 riastrad .include <bsd.test.mk> 96