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