Make use of add() and add_before() in Configurations/
[openssl.git] / Configurations / 00-base-templates.conf
1 %targets=(
2     BASE => {
3         template        => 1,
4         cpuid_obj       => "mem_clr.o",
5         bn_obj          => "bn_asm.o",
6         ec_obj          => "",
7         des_obj         => "des_enc.o fcrypt_b.o",
8         aes_obj         => "aes_core.o aes_cbc.o",
9         bf_obj          => "bf_enc.o",
10         md5_obj         => "",
11         cast_obj        => "c_enc.o",
12         rc4_obj         => "rc4_enc.o rc4_skey.o",
13         rmd160_obj      => "",
14         rc5_obj         => "rc5_enc.o",
15         wp_obj          => "wp_block.o",
16         cmll_obj        => "camellia.o cmll_misc.o cmll_cbc.o",
17         modes_obj       => "",
18         padlock_obj     => "",
19         chacha_obj      => "chacha_enc.o",
20         poly1305_obj    => "",
21
22         unistd          => "<unistd.h>",
23         shared_target   => "",
24         shared_cflag    => "",
25         shared_ldflag   => "",
26         shared_extension        => "",
27         build_scheme    => "unixmake",
28     },
29
30     x86_asm => {
31         template        => 1,
32         cpuid_obj       => "x86cpuid.o",
33         bn_obj          => "bn-586.o co-586.o x86-mont.o x86-gf2m.o",
34         ec_obj          => "ecp_nistz256.o ecp_nistz256-x86.o",
35         des_obj         => "des-586.o crypt586.o",
36         aes_obj         => "aes-586.o vpaes-x86.o aesni-x86.o",
37         bf_obj          => "bf-586.o",
38         md5_obj         => "md5-586.o",
39         sha1_obj        => "sha1-586.o sha256-586.o sha512-586.o",
40         rc4_obj         => "rc4-586.o",
41         rmd160_obj      => "rmd-586.o",
42         rc5_obj         => "rc5-586.o",
43         wp_obj          => "wp_block.o wp-mmx.o",
44         cmll_obj        => "cmll-x86.o",
45         modes_obj       => "ghash-x86.o",
46         padlock_obj     => "e_padlock-x86.o"
47     },
48     x86_elf_asm => {
49         template        => 1,
50         inherit_from    => [ "x86_asm" ],
51         perlasm_scheme  => "elf"
52     },
53     x86_64_asm => {
54         template        => 1,
55         cpuid_obj       => "x86_64cpuid.o",
56         bn_obj          => "x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o",
57         ec_obj          => "ecp_nistz256.o ecp_nistz256-x86_64.o",
58         aes_obj         => "aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
59         md5_obj         => "md5-x86_64.o",
60         sha1_obj        => "sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o",
61         rc4_obj         => "rc4-x86_64.o rc4-md5-x86_64.o",
62         wp_obj          => "wp-x86_64.o",
63         cmll_obj        => "cmll-x86_64.o cmll_misc.o",
64         modes_obj       => "ghash-x86_64.o aesni-gcm-x86_64.o",
65         padlock_obj     => "e_padlock-x86_64.o"
66     },
67     ia64_asm => {
68         template        => 1,
69         cpuid_obj       => "ia64cpuid.o",
70         bn_obj          => "bn-ia64.o ia64-mont.o",
71         aes_obj         => "aes_core.o aes_cbc.o aes-ia64.o",
72         md5_obj         => "md5-ia64.o",
73         sha1_obj        => "sha1-ia64.o sha256-ia64.o sha512-ia64.o",
74         rc4_obj         => "rc4-ia64.o rc4_skey.o",
75         modes_obj       => "ghash-ia64.o",
76         perlasm_scheme  => "void"
77     },
78     sparcv9_asm => {
79         template        => 1,
80         cpuid_obj       => "sparcv9cap.o sparccpuid.o",
81         bn_obj          => "bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o",
82         ec_obj          => "ecp_nistz256.o ecp_nistz256-sparcv9.o",
83         des_obj         => "des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o",
84         aes_obj         => "aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o",
85         md5_obj         => "md5-sparcv9.o",
86         sha1_obj        => "sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o",
87         cmll_obj        => "camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o",
88         modes_obj       => "ghash-sparcv9.o",
89         perlasm_scheme  => "void"
90     },
91     sparcv8_asm => {
92         template        => 1,
93         cpuid_obj       => "",
94         bn_obj          => "sparcv8.o",
95         des_obj         => "des_enc-sparc.o fcrypt_b.o",
96         perlasm_scheme  => "void"
97     },
98     alpha_asm => {
99         template        => 1,
100         cpuid_obj       => "alphacpuid.o",
101         bn_obj          => "bn_asm.o alpha-mont.o",
102         sha1_obj        => "sha1-alpha.o",
103         modes_obj       => "ghash-alpha.o",
104         perlasm_scheme  => "void"
105     },
106     mips32_asm => {
107         template        => 1,
108         bn_obj          => "bn-mips.o mips-mont.o",
109         aes_obj         => "aes_cbc.o aes-mips.o",
110         sha1_obj        => "sha1-mips.o sha256-mips.o",
111     },
112     mips64_asm => {
113         inherit_from    => [ "mips32_asm" ],
114         template        => 1,
115         sha1_obj        => add("sha512-mips.o")
116     },
117     s390x_asm => {
118         template        => 1,
119         cpuid_obj       => "s390xcap.o s390xcpuid.o",
120         bn_obj          => "bn-s390x.o s390x-mont.o s390x-gf2m.o",
121         aes_obj         => "aes-s390x.o aes-ctr.o aes-xts.o",
122         sha1_obj        => "sha1-s390x.o sha256-s390x.o sha512-s390x.o",
123         rc4_obj         => "rc4-s390x.o",
124         modes_obj       => "ghash-s390x.o",
125     },
126     armv4_asm => {
127         template        => 1,
128         cpuid_obj       => "armcap.o armv4cpuid.o",
129         bn_obj          => "bn_asm.o armv4-mont.o armv4-gf2m.o",
130         ec_obj          => "ecp_nistz256.o ecp_nistz256-armv4.o",
131         aes_obj         => "aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o",
132         sha1_obj        => "sha1-armv4-large.o sha256-armv4.o sha512-armv4.o",
133         modes_obj       => "ghash-armv4.o ghashv8-armx.o",
134         perlasm_scheme  => "void"
135     },
136     aarch64_asm => {
137         template        => 1,
138         cpuid_obj       => "armcap.o arm64cpuid.o mem_clr.o",
139         ec_obj          => "ecp_nistz256.o ecp_nistz256-armv8.o",
140         bn_obj          => "bn_asm.o armv8-mont.o",
141         aes_obj         => "aes_core.o aes_cbc.o aesv8-armx.o vpaes-armv8.o",
142         sha1_obj        => "sha1-armv8.o sha256-armv8.o sha512-armv8.o",
143         modes_obj       => "ghashv8-armx.o",
144     },
145     parisc11_asm => {
146         template        => 1,
147         cpuid_obj       => "pariscid.o",
148         bn_obj          => "bn_asm.o parisc-mont.o",
149         aes_obj         => "aes_core.o aes_cbc.o aes-parisc.o",
150         sha1_obj        => "sha1-parisc.o sha256-parisc.o sha512-parisc.o",
151         rc4_obj         => "rc4-parisc.o",
152         modes_obj       => "ghash-parisc.o",
153         perlasm_scheme  => "32"
154     },
155     parisc20_64_asm => {
156         template        => 1,
157         inherit_from    => [ "parisc11_asm" ],
158         bn_obj          => sub { my $r=join(" ",@_); $r=~s/bn_asm/pa-risc2W/; $r; },
159         perlasm_scheme  => "64",
160     },
161     ppc64_asm => {
162         template        => 1,
163         cpuid_obj       => "ppccpuid.o ppccap.o",
164         bn_obj          => "bn-ppc.o ppc-mont.o ppc64-mont.o",
165         aes_obj         => "aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o",
166         sha1_obj        => "sha1-ppc.o sha256-ppc.o sha512-ppc.o sha256p8-ppc.o sha512p8-ppc.o",
167         modes_obj       => "ghashp8-ppc.o",
168     },
169     ppc32_asm => {
170         inherit_from    => [ "ppc64_asm" ],
171         template        => 1
172     },
173 );