1e1051a39Sopenharmony_ciLIBS=../../libcrypto
2e1051a39Sopenharmony_ci
3e1051a39Sopenharmony_ci$AESASM=aes_core.c aes_cbc.c
4e1051a39Sopenharmony_ciIF[{- !$disabled{asm} -}]
5e1051a39Sopenharmony_ci  $AESASM_x86=aes-586.S
6e1051a39Sopenharmony_ci  $AESDEF_x86=AES_ASM
7e1051a39Sopenharmony_ci  $AESASM_x86_sse2=vpaes-x86.S aesni-x86.S
8e1051a39Sopenharmony_ci  $AESDEF_x86_sse2=VPAES_ASM OPENSSL_IA32_SSE2
9e1051a39Sopenharmony_ci
10e1051a39Sopenharmony_ci  $AESASM_x86_64=\
11e1051a39Sopenharmony_ci        aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s \
12e1051a39Sopenharmony_ci        aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s
13e1051a39Sopenharmony_ci  $AESDEF_x86_64=AES_ASM VPAES_ASM BSAES_ASM
14e1051a39Sopenharmony_ci
15e1051a39Sopenharmony_ci  $AESASM_ia64=aes_core.c aes_cbc.c aes-ia64.s
16e1051a39Sopenharmony_ci  $AESDEF_ia64=AES_ASM
17e1051a39Sopenharmony_ci
18e1051a39Sopenharmony_ci  $AESASM_sparcv9=\
19e1051a39Sopenharmony_ci        aes_core.c aes_cbc.c aes-sparcv9.S aest4-sparcv9.S aesfx-sparcv9.S
20e1051a39Sopenharmony_ci  $AESDEF_sparcv9=AES_ASM
21e1051a39Sopenharmony_ci
22e1051a39Sopenharmony_ci  $AESASM_mips32=aes_cbc.c aes-mips.S
23e1051a39Sopenharmony_ci  $AESDEF_mips32=AES_ASM
24e1051a39Sopenharmony_ci  $AESASM_mips64=$AESASM_mips32
25e1051a39Sopenharmony_ci  $AESDEF_mips64=$AESDEF_mips32
26e1051a39Sopenharmony_ci
27e1051a39Sopenharmony_ci  $AESASM_s390x=aes-s390x.S
28e1051a39Sopenharmony_ci  # aes-390x.S implements AES_ctr32_encrypt and AES_xts_[en|de]crypt
29e1051a39Sopenharmony_ci  $AESDEF_s390x=AES_ASM AES_CTR_ASM AES_XTS_ASM
30e1051a39Sopenharmony_ci
31e1051a39Sopenharmony_ci  $AESASM_armv4=aes_cbc.c aes-armv4.S bsaes-armv7.S aesv8-armx.S
32e1051a39Sopenharmony_ci  $AESDEF_armv4=AES_ASM BSAES_ASM
33e1051a39Sopenharmony_ci  $AESASM_aarch64=aes_core.c aes_cbc.c aesv8-armx.S vpaes-armv8.S
34e1051a39Sopenharmony_ci  $AESDEF_aarch64=VPAES_ASM
35e1051a39Sopenharmony_ci
36e1051a39Sopenharmony_ci  $AESASM_parisc11=aes_core.c aes_cbc.c aes-parisc.s
37e1051a39Sopenharmony_ci  $AESDEF_parisc11=AES_ASM
38e1051a39Sopenharmony_ci  $AESASM_parisc20_64=$AESASM_parisc11
39e1051a39Sopenharmony_ci  $AESDEF_parisc20_64=$AESDEF_parisc11
40e1051a39Sopenharmony_ci
41e1051a39Sopenharmony_ci  $AESASM_ppc32=aes_core.c aes_cbc.c aes-ppc.s vpaes-ppc.s aesp8-ppc.s
42e1051a39Sopenharmony_ci  $AESDEF_ppc32=AES_ASM VPAES_ASM
43e1051a39Sopenharmony_ci  $AESASM_ppc64=$AESASM_ppc32
44e1051a39Sopenharmony_ci  $AESDEF_ppc64=$AESDEF_ppc32
45e1051a39Sopenharmony_ci
46e1051a39Sopenharmony_ci  $AESASM_c64xplus=aes-c64xplus.s aes_cbc.c
47e1051a39Sopenharmony_ci  # aes-c64xplus.s implements AES_ctr32_encrypt
48e1051a39Sopenharmony_ci  $AESDEF_c64xplus=AES_ASM AES_CTR_ASM
49e1051a39Sopenharmony_ci
50e1051a39Sopenharmony_ci  # Now that we have defined all the arch specific variables, use the
51e1051a39Sopenharmony_ci  # appropriate one, and define the appropriate macros
52e1051a39Sopenharmony_ci  IF[$AESASM_{- $target{asm_arch} -}]
53e1051a39Sopenharmony_ci    $AESASM=$AESASM_{- $target{asm_arch} -}
54e1051a39Sopenharmony_ci    $AESDEF=$AESDEF_{- $target{asm_arch} -}
55e1051a39Sopenharmony_ci    IF[{- !$disabled{sse2} -}]
56e1051a39Sopenharmony_ci      $AESASM=$AESASM $AESASM_{- $target{asm_arch} -}_sse2
57e1051a39Sopenharmony_ci      $AESDEF=$AESDEF $AESDEF_{- $target{asm_arch} -}_sse2
58e1051a39Sopenharmony_ci    ENDIF
59e1051a39Sopenharmony_ci  ENDIF
60e1051a39Sopenharmony_ciENDIF
61e1051a39Sopenharmony_ci
62e1051a39Sopenharmony_ci$COMMON=aes_misc.c aes_ecb.c $AESASM
63e1051a39Sopenharmony_ciSOURCE[../../libcrypto]=$COMMON aes_cfb.c aes_ofb.c aes_wrap.c
64e1051a39Sopenharmony_ciIF[{- !$disabled{'deprecated-3.0'} -}]
65e1051a39Sopenharmony_ci  SOURCE[../../libcrypto]=aes_ige.c
66e1051a39Sopenharmony_ciENDIF
67e1051a39Sopenharmony_ciSOURCE[../../providers/libfips.a]=$COMMON
68e1051a39Sopenharmony_ci
69e1051a39Sopenharmony_ci# Implementations are now spread across several libraries, so the defines
70e1051a39Sopenharmony_ci# need to be applied to all affected libraries and modules.
71e1051a39Sopenharmony_ciDEFINE[../../libcrypto]=$AESDEF
72e1051a39Sopenharmony_ciDEFINE[../../providers/libfips.a]=$AESDEF
73e1051a39Sopenharmony_ciDEFINE[../../providers/libdefault.a]=$AESDEF
74e1051a39Sopenharmony_ci# We only need to include the AESDEF stuff in the legacy provider when it's a
75e1051a39Sopenharmony_ci# separate module and it's dynamically linked with libcrypto.  Otherwise, it
76e1051a39Sopenharmony_ci# already gets everything that the static libcrypto.a has, and doesn't need it
77e1051a39Sopenharmony_ci# added again.
78e1051a39Sopenharmony_ciIF[{- !$disabled{module} && !$disabled{shared} -}]
79e1051a39Sopenharmony_ci  DEFINE[../providers/liblegacy.a]=$AESDEF
80e1051a39Sopenharmony_ciENDIF
81e1051a39Sopenharmony_ci
82e1051a39Sopenharmony_ciGENERATE[aes-ia64.s]=asm/aes-ia64.S
83e1051a39Sopenharmony_ci
84e1051a39Sopenharmony_ciGENERATE[aes-586.S]=asm/aes-586.pl
85e1051a39Sopenharmony_ciDEPEND[aes-586.S]=../perlasm/x86asm.pl
86e1051a39Sopenharmony_ciGENERATE[vpaes-x86.S]=asm/vpaes-x86.pl
87e1051a39Sopenharmony_ciDEPEND[vpaes-586.S]=../perlasm/x86asm.pl
88e1051a39Sopenharmony_ciGENERATE[aesni-x86.S]=asm/aesni-x86.pl
89e1051a39Sopenharmony_ciDEPEND[aesni-586.S]=../perlasm/x86asm.pl
90e1051a39Sopenharmony_ci
91e1051a39Sopenharmony_ciGENERATE[aes-x86_64.s]=asm/aes-x86_64.pl
92e1051a39Sopenharmony_ciGENERATE[vpaes-x86_64.s]=asm/vpaes-x86_64.pl
93e1051a39Sopenharmony_ciGENERATE[bsaes-x86_64.s]=asm/bsaes-x86_64.pl
94e1051a39Sopenharmony_ciGENERATE[aesni-x86_64.s]=asm/aesni-x86_64.pl
95e1051a39Sopenharmony_ciGENERATE[aesni-sha1-x86_64.s]=asm/aesni-sha1-x86_64.pl
96e1051a39Sopenharmony_ciGENERATE[aesni-sha256-x86_64.s]=asm/aesni-sha256-x86_64.pl
97e1051a39Sopenharmony_ciGENERATE[aesni-mb-x86_64.s]=asm/aesni-mb-x86_64.pl
98e1051a39Sopenharmony_ci
99e1051a39Sopenharmony_ciGENERATE[aes-sparcv9.S]=asm/aes-sparcv9.pl
100e1051a39Sopenharmony_ciINCLUDE[aes-sparcv9.o]=..
101e1051a39Sopenharmony_ciGENERATE[aest4-sparcv9.S]=asm/aest4-sparcv9.pl
102e1051a39Sopenharmony_ciINCLUDE[aest4-sparcv9.o]=..
103e1051a39Sopenharmony_ciDEPEND[aest4-sparcv9.S]=../perlasm/sparcv9_modes.pl
104e1051a39Sopenharmony_ciGENERATE[aesfx-sparcv9.S]=asm/aesfx-sparcv9.pl
105e1051a39Sopenharmony_ciINCLUDE[aesfx-sparcv9.o]=..
106e1051a39Sopenharmony_ci
107e1051a39Sopenharmony_ciGENERATE[aes-ppc.s]=asm/aes-ppc.pl
108e1051a39Sopenharmony_ciGENERATE[vpaes-ppc.s]=asm/vpaes-ppc.pl
109e1051a39Sopenharmony_ciGENERATE[aesp8-ppc.s]=asm/aesp8-ppc.pl
110e1051a39Sopenharmony_ci
111e1051a39Sopenharmony_ciGENERATE[aes-parisc.s]=asm/aes-parisc.pl
112e1051a39Sopenharmony_ci
113e1051a39Sopenharmony_ciGENERATE[aes-mips.S]=asm/aes-mips.pl
114e1051a39Sopenharmony_ciINCLUDE[aes-mips.o]=..
115e1051a39Sopenharmony_ci
116e1051a39Sopenharmony_ciGENERATE[aesv8-armx.S]=asm/aesv8-armx.pl
117e1051a39Sopenharmony_ciINCLUDE[aesv8-armx.o]=..
118e1051a39Sopenharmony_ciGENERATE[vpaes-armv8.S]=asm/vpaes-armv8.pl
119e1051a39Sopenharmony_ci
120e1051a39Sopenharmony_ciGENERATE[aes-armv4.S]=asm/aes-armv4.pl
121e1051a39Sopenharmony_ciINCLUDE[aes-armv4.o]=..
122e1051a39Sopenharmony_ciGENERATE[bsaes-armv7.S]=asm/bsaes-armv7.pl
123e1051a39Sopenharmony_ciINCLUDE[bsaes-armv7.o]=..
124e1051a39Sopenharmony_ci
125e1051a39Sopenharmony_ciGENERATE[aes-s390x.S]=asm/aes-s390x.pl
126e1051a39Sopenharmony_ciINCLUDE[aes-s390x.o]=..
127e1051a39Sopenharmony_ci
128e1051a39Sopenharmony_ciGENERATE[aes-c64xplus.S]=asm/aes-c64xplus.pl
129