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