# $NetBSD: Makefile,v 1.7 2023/08/08 06:27:32 mrg Exp $ .include TESTSDIR= ${TESTSBASE}/sys/crypto/aes TESTS_C= t_aes AFLAGS+= -D_LOCORE .PATH: ${NETBSDSRCDIR}/sys/crypto/aes CPPFLAGS+= -I${NETBSDSRCDIR}/sys SRCS.t_aes+= t_aes.c SRCS.t_aes+= aes_bear.c SRCS.t_aes+= aes_ct.c SRCS.t_aes+= aes_ct_dec.c SRCS.t_aes+= aes_ct_enc.c SRCS.t_aes+= aes_selftest.c .if !empty(MACHINE_ARCH:Mearmv7*) || !empty(MACHINE_ARCH:Maarch64*) .PATH: ${NETBSDSRCDIR}/sys/crypto/aes/arch/arm CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/aes/arch/arm .if !empty(MACHINE_ARCH:Maarch64*) # XXX no AESE/AESD in 32-bit mode yet SRCS.t_aes+= aes_armv8.c SRCS.t_aes+= aes_armv8_64.S .endif CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION= ${${ACTIVE_CC} == "clang":? -Wno-nonportable-vector-initialization :} SRCS.t_aes+= aes_neon.c COPTS.aes_neon.c+=${CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION} SRCS.t_aes+= aes_neon_impl.c SRCS.t_aes+= aes_neon_subr.c COPTS.aes_neon_subr.c+=${CLANG_NO_NONPORTABLE_VECTOR_INITIALIZATION} .if !empty(MACHINE_ARCH:Mearmv7*) SRCS.t_aes+= aes_neon_32.S .endif .if !empty(MACHINE_ARCH:Mearmv7*) && empty(MACHINE_ARCH:Mearmv7hf*) COPTS.aes_neon.c+= -mfloat-abi=softfp -mfpu=neon COPTS.aes_neon_subr.c+= -mfloat-abi=softfp -mfpu=neon AOPTS.aes_neon_32.S+= -D__SOFTFP__ .endif .endif # earmv7/aarch64 .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "x86_64" .PATH: ${NETBSDSRCDIR}/sys/crypto/aes/arch/x86 CPPFLAGS+= -I${NETBSDSRCDIR}/sys/crypto/aes/arch/x86 .if ${MACHINE_ARCH} == "x86_64" # XXX no AES-NI in 32-bit mode yet SRCS.t_aes+= aes_ni.c SRCS.t_aes+= aes_ni_64.S .endif SRCS.t_aes+= aes_sse2.c SRCS.t_aes+= aes_sse2_dec.c SRCS.t_aes+= aes_sse2_enc.c SRCS.t_aes+= aes_sse2_impl.c SRCS.t_aes+= aes_sse2_subr.c COPTS.aes_sse2.c+= -msse -msse2 COPTS.aes_sse2_dec.c+= -msse -msse2 COPTS.aes_sse2_enc.c+= -msse -msse2 COPTS.aes_sse2_subr.c+= -msse -msse2 SRCS.t_aes+= aes_ssse3.c SRCS.t_aes+= aes_ssse3_impl.c SRCS.t_aes+= aes_ssse3_subr.c COPTS.aes_ssse3.c+= -msse -msse2 -msse3 -mssse3 COPTS.aes_ssse3_subr.c+= -msse -msse2 -msse3 -mssse3 SRCS.t_aes+= aes_via.c .endif # x86 WARNS= 5 # Many of these are probably GCC bugs, see # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110878 COPTS.aes_armv8.c+= ${CC_WNO_STRINGOP_OVERREAD} ${CC_WNO_STRINGOP_OVERFLOW} COPTS.aes_bear.c+= ${CC_WNO_STRINGOP_OVERFLOW} ${CC_WNO_ARRAY_BOUNDS} COPTS.aes_neon_subr.c+= ${CC_WNO_ARRAY_BOUNDS} COPTS.aes_ni.c+= ${CC_WNO_STRINGOP_OVERREAD} ${CC_WNO_STRINGOP_OVERFLOW} COPTS.aes_sse2_subr.c+= ${CC_WNO_ARRAY_BOUNDS} COPTS.aes_ssse3_subr.c+=${CC_WNO_ARRAY_BOUNDS} COPTS.aes_via.c+= ${CC_WNO_ARRAY_BOUNDS} .include