1e1051a39Sopenharmony_ci$ECASM=
2e1051a39Sopenharmony_ciIF[{- !$disabled{asm} -}]
3e1051a39Sopenharmony_ci  $ECASM_x86=ecp_nistz256.c ecp_nistz256-x86.S
4e1051a39Sopenharmony_ci  $ECDEF_x86=ECP_NISTZ256_ASM
5e1051a39Sopenharmony_ci
6e1051a39Sopenharmony_ci  $ECASM_x86_64=ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s
7e1051a39Sopenharmony_ci  $ECDEF_x86_64=ECP_NISTZ256_ASM X25519_ASM
8e1051a39Sopenharmony_ci
9e1051a39Sopenharmony_ci  $ECASM_ia64=
10e1051a39Sopenharmony_ci
11e1051a39Sopenharmony_ci  $ECASM_sparcv9=ecp_nistz256.c ecp_nistz256-sparcv9.S
12e1051a39Sopenharmony_ci  $ECDEF_sparcv9=ECP_NISTZ256_ASM
13e1051a39Sopenharmony_ci
14e1051a39Sopenharmony_ci  $ECASM_sparcv8=
15e1051a39Sopenharmony_ci
16e1051a39Sopenharmony_ci  $ECASM_alpha=
17e1051a39Sopenharmony_ci
18e1051a39Sopenharmony_ci  $ECASM_mips32=
19e1051a39Sopenharmony_ci  $ECASM_mips64=
20e1051a39Sopenharmony_ci
21e1051a39Sopenharmony_ci  $ECASM_s390x=ecp_s390x_nistp.c ecx_s390x.c
22e1051a39Sopenharmony_ci  $ECDEF_s390x=S390X_EC_ASM
23e1051a39Sopenharmony_ci
24e1051a39Sopenharmony_ci  $ECASM_armv4=ecp_nistz256.c ecp_nistz256-armv4.S
25e1051a39Sopenharmony_ci  $ECDEF_armv4=ECP_NISTZ256_ASM
26e1051a39Sopenharmony_ci  $ECASM_aarch64=ecp_nistz256.c ecp_nistz256-armv8.S
27e1051a39Sopenharmony_ci  $ECDEF_aarch64=ECP_NISTZ256_ASM
28e1051a39Sopenharmony_ci
29e1051a39Sopenharmony_ci  $ECASM_parisc11=
30e1051a39Sopenharmony_ci  $ECASM_parisc20_64=
31e1051a39Sopenharmony_ci
32e1051a39Sopenharmony_ci  $ECASM_ppc32=
33e1051a39Sopenharmony_ci  $ECASM_ppc64=ecp_nistz256.c ecp_ppc.c ecp_nistz256-ppc64.s x25519-ppc64.s
34e1051a39Sopenharmony_ci  $ECDEF_ppc64=ECP_NISTZ256_ASM X25519_ASM
35e1051a39Sopenharmony_ci  IF[{- !$disabled{'ec_nistp_64_gcc_128'} -}]
36e1051a39Sopenharmony_ci    $ECASM_ppc64=$ECASM_ppc64 ecp_nistp521-ppc64.s
37e1051a39Sopenharmony_ci    $ECDEF_ppc64=$ECDEF_ppc64 ECP_NISTP521_ASM
38e1051a39Sopenharmony_ci    INCLUDE[ecp_nistp521.o]=..
39e1051a39Sopenharmony_ci  ENDIF
40e1051a39Sopenharmony_ci
41e1051a39Sopenharmony_ci  $ECASM_c64xplus=
42e1051a39Sopenharmony_ci
43e1051a39Sopenharmony_ci  # Now that we have defined all the arch specific variables, use the
44e1051a39Sopenharmony_ci  # appropriate one, and define the appropriate macros
45e1051a39Sopenharmony_ci  IF[$ECASM_{- $target{asm_arch} -}]
46e1051a39Sopenharmony_ci    $ECASM=$ECASM_{- $target{asm_arch} -}
47e1051a39Sopenharmony_ci    $ECDEF=$ECDEF_{- $target{asm_arch} -}
48e1051a39Sopenharmony_ci  ENDIF
49e1051a39Sopenharmony_ciENDIF
50e1051a39Sopenharmony_ci
51e1051a39Sopenharmony_ci$COMMON=ec_lib.c ecp_smpl.c ecp_mont.c ecp_nist.c ec_cvt.c ec_mult.c \
52e1051a39Sopenharmony_ci        ec_curve.c ec_check.c ec_key.c ec_kmeth.c ecx_key.c ec_asn1.c \
53e1051a39Sopenharmony_ci        ec2_smpl.c \
54e1051a39Sopenharmony_ci        ecp_oct.c ec2_oct.c ec_oct.c ecdh_ossl.c \
55e1051a39Sopenharmony_ci        ecdsa_ossl.c ecdsa_sign.c ecdsa_vrf.c curve25519.c \
56e1051a39Sopenharmony_ci        curve448/f_generic.c curve448/scalar.c \
57e1051a39Sopenharmony_ci        curve448/curve448_tables.c curve448/eddsa.c curve448/curve448.c \
58e1051a39Sopenharmony_ci        $ECASM ec_backend.c ecx_backend.c ecdh_kdf.c curve448/arch_64/f_impl64.c \
59e1051a39Sopenharmony_ci        curve448/arch_32/f_impl32.c
60e1051a39Sopenharmony_ci
61e1051a39Sopenharmony_ciIF[{- !$disabled{'ec_nistp_64_gcc_128'} -}]
62e1051a39Sopenharmony_ci  $COMMON=$COMMON ecp_nistp224.c ecp_nistp256.c ecp_nistp521.c ecp_nistputil.c
63e1051a39Sopenharmony_ciENDIF
64e1051a39Sopenharmony_ci
65e1051a39Sopenharmony_ciSOURCE[../../libcrypto]=$COMMON ec_ameth.c ec_pmeth.c ecx_meth.c \
66e1051a39Sopenharmony_ci                        ec_err.c eck_prn.c \
67e1051a39Sopenharmony_ci                        ec_deprecated.c ec_print.c
68e1051a39Sopenharmony_ciSOURCE[../../providers/libfips.a]=$COMMON
69e1051a39Sopenharmony_ci
70e1051a39Sopenharmony_ci# Implementations are now spread across several libraries, so the defines
71e1051a39Sopenharmony_ci# need to be applied to all affected libraries and modules.
72e1051a39Sopenharmony_ciDEFINE[../../libcrypto]=$ECDEF
73e1051a39Sopenharmony_ciDEFINE[../../providers/libfips.a]=$ECDEF
74e1051a39Sopenharmony_ciDEFINE[../../providers/libdefault.a]=$ECDEF
75e1051a39Sopenharmony_ci# We only need to include the ECDEF stuff in the legacy provider when
76e1051a39Sopenharmony_ci# it's a separate module and it's dynamically linked with libcrypto.
77e1051a39Sopenharmony_ci# Otherwise, it already gets everything that the static libcrypto.a
78e1051a39Sopenharmony_ci# has, and doesn't need it added again.
79e1051a39Sopenharmony_ciIF[{- !$disabled{module} && !$disabled{shared} -}]
80e1051a39Sopenharmony_ci  DEFINE[../providers/liblegacy.a]=$ECDEF
81e1051a39Sopenharmony_ciENDIF
82e1051a39Sopenharmony_ci
83e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-x86.S]=asm/ecp_nistz256-x86.pl
84e1051a39Sopenharmony_ci
85e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-x86_64.s]=asm/ecp_nistz256-x86_64.pl
86e1051a39Sopenharmony_ci
87e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-avx2.s]=asm/ecp_nistz256-avx2.pl
88e1051a39Sopenharmony_ci
89e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-sparcv9.S]=asm/ecp_nistz256-sparcv9.pl
90e1051a39Sopenharmony_ciINCLUDE[ecp_nistz256-sparcv9.o]=..
91e1051a39Sopenharmony_ci
92e1051a39Sopenharmony_ciINCLUDE[ecp_s390x_nistp.o]=..
93e1051a39Sopenharmony_ciINCLUDE[ecx_s390x.o]=..
94e1051a39Sopenharmony_ciINCLUDE[ecx_meth.o]=..
95e1051a39Sopenharmony_ci
96e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-armv4.S]=asm/ecp_nistz256-armv4.pl
97e1051a39Sopenharmony_ciINCLUDE[ecp_nistz256-armv4.o]=..
98e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-armv8.S]=asm/ecp_nistz256-armv8.pl
99e1051a39Sopenharmony_ciINCLUDE[ecp_nistz256-armv8.o]=..
100e1051a39Sopenharmony_ciGENERATE[ecp_nistz256-ppc64.s]=asm/ecp_nistz256-ppc64.pl
101e1051a39Sopenharmony_ci
102e1051a39Sopenharmony_ciGENERATE[ecp_nistp521-ppc64.s]=asm/ecp_nistp521-ppc64.pl
103e1051a39Sopenharmony_ci
104e1051a39Sopenharmony_ciGENERATE[x25519-x86_64.s]=asm/x25519-x86_64.pl
105e1051a39Sopenharmony_ciGENERATE[x25519-ppc64.s]=asm/x25519-ppc64.pl
106