1e1051a39Sopenharmony_ciLIBS=../../libcrypto
2e1051a39Sopenharmony_ci
3e1051a39Sopenharmony_ci$SHA1ASM=
4e1051a39Sopenharmony_ciIF[{- !$disabled{asm} -}]
5e1051a39Sopenharmony_ci  $SHA1ASM_x86=sha1-586.S sha256-586.S sha512-586.S
6e1051a39Sopenharmony_ci  $SHA1DEF_x86=SHA1_ASM SHA256_ASM SHA512_ASM
7e1051a39Sopenharmony_ci  $SHA1ASM_x86_64=\
8e1051a39Sopenharmony_ci        sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s \
9e1051a39Sopenharmony_ci        sha256-mb-x86_64.s
10e1051a39Sopenharmony_ci  $SHA1DEF_x86_64=SHA1_ASM SHA256_ASM SHA512_ASM
11e1051a39Sopenharmony_ci
12e1051a39Sopenharmony_ci  $SHA1ASM_ia64=sha1-ia64.s sha256-ia64.s sha512-ia64.s
13e1051a39Sopenharmony_ci  $SHA1DEF_ia64=SHA1_ASM SHA256_ASM SHA512_ASM
14e1051a39Sopenharmony_ci
15e1051a39Sopenharmony_ci  $SHA1ASM_sparcv9=sha1-sparcv9.S sha256-sparcv9.S sha512-sparcv9.S
16e1051a39Sopenharmony_ci  $SHA1DEF_sparcv9=SHA1_ASM SHA256_ASM SHA512_ASM
17e1051a39Sopenharmony_ci
18e1051a39Sopenharmony_ci  $SHA1ASM_alpha=sha1-alpha.S
19e1051a39Sopenharmony_ci  $SHA1DEF_alpha=SHA1_ASM
20e1051a39Sopenharmony_ci
21e1051a39Sopenharmony_ci  $SHA1ASM_mips32=sha1-mips.S sha256-mips.S
22e1051a39Sopenharmony_ci  $SHA1DEF_mips32=SHA1_ASM SHA256_ASM
23e1051a39Sopenharmony_ci  $SHA1ASM_mips64=$SHA1ASM_mips32 sha512-mips.S
24e1051a39Sopenharmony_ci  $SHA1DEF_mips64=$SHA1DEF_mips32 SHA512_ASM
25e1051a39Sopenharmony_ci
26e1051a39Sopenharmony_ci  $SHA1ASM_s390x=sha1-s390x.S sha256-s390x.S sha512-s390x.S
27e1051a39Sopenharmony_ci  $SHA1DEF_s390x=SHA1_ASM SHA256_ASM SHA512_ASM
28e1051a39Sopenharmony_ci
29e1051a39Sopenharmony_ci  $SHA1ASM_armv4=sha1-armv4-large.S sha256-armv4.S sha512-armv4.S
30e1051a39Sopenharmony_ci  $SHA1DEF_armv4=SHA1_ASM SHA256_ASM SHA512_ASM
31e1051a39Sopenharmony_ci  $SHA1ASM_aarch64=sha1-armv8.S sha256-armv8.S sha512-armv8.S
32e1051a39Sopenharmony_ci  $SHA1DEF_aarch64=SHA1_ASM SHA256_ASM SHA512_ASM
33e1051a39Sopenharmony_ci
34e1051a39Sopenharmony_ci  $SHA1ASM_parisc11=sha1-parisc.s sha256-parisc.s sha512-parisc.s
35e1051a39Sopenharmony_ci  $SHA1DEF_parisc11=SHA1_ASM SHA256_ASM SHA512_ASM
36e1051a39Sopenharmony_ci  $SHA1ASM_parisc20_64=$SHA1ASM_parisc11
37e1051a39Sopenharmony_ci  $SHA1DEF_parisc20_64=$SHA1DEF_parisc11
38e1051a39Sopenharmony_ci
39e1051a39Sopenharmony_ci  $SHA1ASM_ppc32=\
40e1051a39Sopenharmony_ci        sha_ppc.c sha1-ppc.s sha256-ppc.s sha512-ppc.s sha256p8-ppc.s \
41e1051a39Sopenharmony_ci        sha512p8-ppc.s
42e1051a39Sopenharmony_ci  $SHA1DEF_ppc32=SHA1_ASM SHA256_ASM SHA512_ASM
43e1051a39Sopenharmony_ci  $SHA1ASM_ppc64=$SHA1ASM_ppc32
44e1051a39Sopenharmony_ci  $SHA1DEF_ppc64=$SHA1DEF_ppc32
45e1051a39Sopenharmony_ci
46e1051a39Sopenharmony_ci  $SHA1ASM_c64xplus=sha1-c64xplus.s sha256-c64xplus.s sha512-c64xplus.s
47e1051a39Sopenharmony_ci  $SHA1DEF_c64xplus=SHA1_ASM SHA256_ASM SHA512_ASM
48e1051a39Sopenharmony_ci
49e1051a39Sopenharmony_ci  # Now that we have defined all the arch specific variables, use the
50e1051a39Sopenharmony_ci  # appropriate one, and define the appropriate macros
51e1051a39Sopenharmony_ci  IF[$SHA1ASM_{- $target{asm_arch} -}]
52e1051a39Sopenharmony_ci    $SHA1ASM=$SHA1ASM_{- $target{asm_arch} -}
53e1051a39Sopenharmony_ci    $SHA1DEF=$SHA1DEF_{- $target{asm_arch} -}
54e1051a39Sopenharmony_ci  ENDIF
55e1051a39Sopenharmony_ciENDIF
56e1051a39Sopenharmony_ci
57e1051a39Sopenharmony_ci$KECCAK1600ASM=keccak1600.c
58e1051a39Sopenharmony_ciIF[{- !$disabled{asm} -}]
59e1051a39Sopenharmony_ci  $KECCAK1600ASM_x86=
60e1051a39Sopenharmony_ci  $KECCAK1600ASM_x86_64=keccak1600-x86_64.s
61e1051a39Sopenharmony_ci
62e1051a39Sopenharmony_ci  $KECCAK1600ASM_s390x=keccak1600-s390x.S
63e1051a39Sopenharmony_ci
64e1051a39Sopenharmony_ci  $KECCAK1600ASM_armv4=keccak1600-armv4.S
65e1051a39Sopenharmony_ci  $KECCAK1600ASM_aarch64=keccak1600-armv8.S
66e1051a39Sopenharmony_ci
67e1051a39Sopenharmony_ci  $KECCAK1600ASM_ppc64=keccak1600-ppc64.s
68e1051a39Sopenharmony_ci
69e1051a39Sopenharmony_ci  # Now that we have defined all the arch specific variables, use the
70e1051a39Sopenharmony_ci  # appropriate one, and define the appropriate macros
71e1051a39Sopenharmony_ci  IF[$KECCAK1600ASM_{- $target{asm_arch} -}]
72e1051a39Sopenharmony_ci    $KECCAK1600ASM=$KECCAK1600ASM_{- $target{asm_arch} -}
73e1051a39Sopenharmony_ci    $KECCAK1600DEF=KECCAK1600_ASM
74e1051a39Sopenharmony_ci  ENDIF
75e1051a39Sopenharmony_ciENDIF
76e1051a39Sopenharmony_ci
77e1051a39Sopenharmony_ci$COMMON=sha1dgst.c sha256.c sha512.c sha3.c $SHA1ASM $KECCAK1600ASM
78e1051a39Sopenharmony_ciSOURCE[../../libcrypto]=$COMMON sha1_one.c
79e1051a39Sopenharmony_ciSOURCE[../../providers/libfips.a]= $COMMON
80e1051a39Sopenharmony_ci
81e1051a39Sopenharmony_ci# Implementations are now spread across several libraries, so the defines
82e1051a39Sopenharmony_ci# need to be applied to all affected libraries and modules.
83e1051a39Sopenharmony_ciDEFINE[../../libcrypto]=$SHA1DEF $KECCAK1600DEF
84e1051a39Sopenharmony_ciDEFINE[../../providers/libfips.a]=$SHA1DEF $KECCAK1600DEF
85e1051a39Sopenharmony_ciDEFINE[../../providers/libdefault.a]=$SHA1DEF $KECCAK1600DEF
86e1051a39Sopenharmony_ci# We only need to include the SHA1DEF and KECCAK1600DEF stuff in the
87e1051a39Sopenharmony_ci# legacy provider when it's a separate module and it's dynamically
88e1051a39Sopenharmony_ci# linked with libcrypto.  Otherwise, it already gets everything that
89e1051a39Sopenharmony_ci# the static libcrypto.a has, and doesn't need it added again.
90e1051a39Sopenharmony_ciIF[{- !$disabled{module} && !$disabled{shared} -}]
91e1051a39Sopenharmony_ci  DEFINE[../providers/liblegacy.a]=$SHA1DEF $KECCAK1600DEF
92e1051a39Sopenharmony_ciENDIF
93e1051a39Sopenharmony_ci
94e1051a39Sopenharmony_ciGENERATE[sha1-586.S]=asm/sha1-586.pl
95e1051a39Sopenharmony_ciDEPEND[sha1-586.S]=../perlasm/x86asm.pl
96e1051a39Sopenharmony_ciGENERATE[sha256-586.S]=asm/sha256-586.pl
97e1051a39Sopenharmony_ciDEPEND[sha256-586.S]=../perlasm/x86asm.pl
98e1051a39Sopenharmony_ciGENERATE[sha512-586.S]=asm/sha512-586.pl
99e1051a39Sopenharmony_ciDEPEND[sha512-586.S]=../perlasm/x86asm.pl
100e1051a39Sopenharmony_ci
101e1051a39Sopenharmony_ciGENERATE[sha1-ia64.s]=asm/sha1-ia64.pl
102e1051a39Sopenharmony_ciGENERATE[sha256-ia64.s]=asm/sha512-ia64.pl
103e1051a39Sopenharmony_ciGENERATE[sha512-ia64.s]=asm/sha512-ia64.pl
104e1051a39Sopenharmony_ci
105e1051a39Sopenharmony_ciGENERATE[sha1-alpha.S]=asm/sha1-alpha.pl
106e1051a39Sopenharmony_ci
107e1051a39Sopenharmony_ciGENERATE[sha1-x86_64.s]=asm/sha1-x86_64.pl
108e1051a39Sopenharmony_ciGENERATE[sha1-mb-x86_64.s]=asm/sha1-mb-x86_64.pl
109e1051a39Sopenharmony_ciGENERATE[sha256-x86_64.s]=asm/sha512-x86_64.pl
110e1051a39Sopenharmony_ciGENERATE[sha256-mb-x86_64.s]=asm/sha256-mb-x86_64.pl
111e1051a39Sopenharmony_ciGENERATE[sha512-x86_64.s]=asm/sha512-x86_64.pl
112e1051a39Sopenharmony_ciGENERATE[keccak1600-x86_64.s]=asm/keccak1600-x86_64.pl
113e1051a39Sopenharmony_ci
114e1051a39Sopenharmony_ciGENERATE[sha1-sparcv9a.S]=asm/sha1-sparcv9a.pl
115e1051a39Sopenharmony_ciGENERATE[sha1-sparcv9.S]=asm/sha1-sparcv9.pl
116e1051a39Sopenharmony_ciINCLUDE[sha1-sparcv9.o]=..
117e1051a39Sopenharmony_ciGENERATE[sha256-sparcv9.S]=asm/sha512-sparcv9.pl
118e1051a39Sopenharmony_ciINCLUDE[sha256-sparcv9.o]=..
119e1051a39Sopenharmony_ciGENERATE[sha512-sparcv9.S]=asm/sha512-sparcv9.pl
120e1051a39Sopenharmony_ciINCLUDE[sha512-sparcv9.o]=..
121e1051a39Sopenharmony_ci
122e1051a39Sopenharmony_ciGENERATE[sha1-ppc.s]=asm/sha1-ppc.pl
123e1051a39Sopenharmony_ciGENERATE[sha256-ppc.s]=asm/sha512-ppc.pl
124e1051a39Sopenharmony_ciGENERATE[sha512-ppc.s]=asm/sha512-ppc.pl
125e1051a39Sopenharmony_ciGENERATE[sha256p8-ppc.s]=asm/sha512p8-ppc.pl
126e1051a39Sopenharmony_ciGENERATE[sha512p8-ppc.s]=asm/sha512p8-ppc.pl
127e1051a39Sopenharmony_ciGENERATE[keccak1600-ppc64.s]=asm/keccak1600-ppc64.pl
128e1051a39Sopenharmony_ci
129e1051a39Sopenharmony_ciGENERATE[sha1-parisc.s]=asm/sha1-parisc.pl
130e1051a39Sopenharmony_ciGENERATE[sha256-parisc.s]=asm/sha512-parisc.pl
131e1051a39Sopenharmony_ciGENERATE[sha512-parisc.s]=asm/sha512-parisc.pl
132e1051a39Sopenharmony_ci
133e1051a39Sopenharmony_ciGENERATE[sha1-mips.S]=asm/sha1-mips.pl
134e1051a39Sopenharmony_ciINCLUDE[sha1-mips.o]=..
135e1051a39Sopenharmony_ciGENERATE[sha256-mips.S]=asm/sha512-mips.pl
136e1051a39Sopenharmony_ciINCLUDE[sha256-mips.o]=..
137e1051a39Sopenharmony_ciGENERATE[sha512-mips.S]=asm/sha512-mips.pl
138e1051a39Sopenharmony_ciINCLUDE[sha512-mips.o]=..
139e1051a39Sopenharmony_ci
140e1051a39Sopenharmony_ciGENERATE[sha1-armv4-large.S]=asm/sha1-armv4-large.pl
141e1051a39Sopenharmony_ciINCLUDE[sha1-armv4-large.o]=..
142e1051a39Sopenharmony_ciGENERATE[sha256-armv4.S]=asm/sha256-armv4.pl
143e1051a39Sopenharmony_ciINCLUDE[sha256-armv4.o]=..
144e1051a39Sopenharmony_ciGENERATE[sha512-armv4.S]=asm/sha512-armv4.pl
145e1051a39Sopenharmony_ciINCLUDE[sha512-armv4.o]=..
146e1051a39Sopenharmony_ciGENERATE[keccak1600-armv4.S]=asm/keccak1600-armv4.pl
147e1051a39Sopenharmony_ciINCLUDE[keccak1600-armv4.o]=..
148e1051a39Sopenharmony_ci
149e1051a39Sopenharmony_ciGENERATE[sha1-armv8.S]=asm/sha1-armv8.pl
150e1051a39Sopenharmony_ciINCLUDE[sha1-armv8.o]=..
151e1051a39Sopenharmony_ciGENERATE[sha256-armv8.S]=asm/sha512-armv8.pl
152e1051a39Sopenharmony_ciINCLUDE[sha256-armv8.o]=..
153e1051a39Sopenharmony_ciGENERATE[sha512-armv8.S]=asm/sha512-armv8.pl
154e1051a39Sopenharmony_ciINCLUDE[sha512-armv8.o]=..
155e1051a39Sopenharmony_ciGENERATE[keccak1600-armv8.S]=asm/keccak1600-armv8.pl
156e1051a39Sopenharmony_ci
157e1051a39Sopenharmony_ciGENERATE[sha1-s390x.S]=asm/sha1-s390x.pl
158e1051a39Sopenharmony_ciINCLUDE[sha1-s390x.o]=..
159e1051a39Sopenharmony_ciGENERATE[sha256-s390x.S]=asm/sha512-s390x.pl
160e1051a39Sopenharmony_ciINCLUDE[sha256-s390x.o]=..
161e1051a39Sopenharmony_ciGENERATE[sha512-s390x.S]=asm/sha512-s390x.pl
162e1051a39Sopenharmony_ciINCLUDE[sha512-s390x.o]=..
163e1051a39Sopenharmony_ciGENERATE[keccak1600-s390x.S]=asm/keccak1600-s390x.pl
164e1051a39Sopenharmony_ci
165e1051a39Sopenharmony_ciGENERATE[sha1-c64xplus.S]=asm/sha1-c64xplus.pl
166e1051a39Sopenharmony_ciGENERATE[sha256-c64xplus.S]=asm/sha256-c64xplus.pl
167e1051a39Sopenharmony_ciGENERATE[sha512-c64xplus.S]=asm/sha512-c64xplus.pl
168e1051a39Sopenharmony_ciGENERATE[keccak1600-c64x.S]=asm/keccak1600-c64x.pl
169e1051a39Sopenharmony_ci
170e1051a39Sopenharmony_ci# These are not yet used
171e1051a39Sopenharmony_ciGENERATE[keccak1600-avx2.S]=asm/keccak1600-avx2.pl
172e1051a39Sopenharmony_ciGENERATE[keccak1600-avx512.S]=asm/keccak1600-avx512.pl
173e1051a39Sopenharmony_ciGENERATE[keccak1600-avx512vl.S]=asm/keccak1600-avx512vl.pl
174e1051a39Sopenharmony_ciGENERATE[keccak1600-mmx.S]=asm/keccak1600-mmx.pl
175e1051a39Sopenharmony_ciGENERATE[keccak1600p8-ppc.S]=asm/keccak1600p8-ppc.pl
176e1051a39Sopenharmony_ciGENERATE[sha1-thumb.S]=asm/sha1-thumb.pl
177