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