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