2016-01-30 01:17:05 +00:00
|
|
|
# -*- Mode: perl -*-
|
2015-05-18 00:54:28 +00:00
|
|
|
%targets=(
|
2016-02-27 10:25:33 +00:00
|
|
|
DEFAULTS => {
|
2015-05-18 00:54:28 +00:00
|
|
|
template => 1,
|
2016-01-30 01:17:05 +00:00
|
|
|
|
|
|
|
cflags => "",
|
|
|
|
defines => [],
|
Configure - Get rid of the special thread_cflag, replace with thread_scheme
The thread_cflag setting filled a double role, as kinda sorta an
indicator of thread scheme, and as cflags. Some configs also added
lflags and ex_libs for multithreading regardless of if threading would
be enabled or not.
Instead of this, add threading cflags among in the cflag setting,
threading lflags in the lflag setting and so on if and only if threads
are enabled (which they are by default).
Also, for configs where there are no special cflags for threading (the
VMS configs are of that kind), this makes it possible to still clearly
mention what thread scheme is used.
The exact value of thread scheme is currently ignored except when it's
"(unknown)", and thereby only serves as a flag to tell if we know how
to build for multi-threading in a particular config. Yet, the
currently used values are "(unknown)", "pthreads", "uithreads" (a.k.a
solaris threads) and "winthreads".
Reviewed-by: Andy Polyakov <appro@openssl.org>
2016-02-27 15:51:34 +00:00
|
|
|
thread_scheme => "(unknown)", # Assume we don't know
|
2016-01-30 01:17:05 +00:00
|
|
|
thread_defines => [],
|
|
|
|
|
2016-02-18 17:43:56 +00:00
|
|
|
apps_aux_src => "",
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "mem_clr.c",
|
2016-03-02 08:34:26 +00:00
|
|
|
uplink_aux_src => "",
|
2016-01-29 18:45:51 +00:00
|
|
|
bn_asm_src => "bn_asm.c",
|
|
|
|
ec_asm_src => "",
|
|
|
|
des_asm_src => "des_enc.c fcrypt_b.c",
|
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c",
|
|
|
|
bf_asm_src => "bf_enc.c",
|
|
|
|
md5_asm_src => "",
|
|
|
|
cast_asm_src => "c_enc.c",
|
|
|
|
rc4_asm_src => "rc4_enc.c rc4_skey.c",
|
|
|
|
rmd160_asm_src => "",
|
|
|
|
rc5_asm_src => "rc5_enc.c",
|
|
|
|
wp_asm_src => "wp_block.c",
|
|
|
|
cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c",
|
|
|
|
modes_asm_src => "",
|
|
|
|
padlock_asm_src => "",
|
|
|
|
chacha_asm_src => "chacha_enc.c",
|
|
|
|
poly1305_asm_src => "",
|
2015-05-18 00:54:28 +00:00
|
|
|
|
|
|
|
unistd => "<unistd.h>",
|
2015-05-20 18:03:20 +00:00
|
|
|
shared_target => "",
|
|
|
|
shared_cflag => "",
|
2016-02-18 17:43:56 +00:00
|
|
|
shared_defines => [],
|
2015-05-20 18:03:20 +00:00
|
|
|
shared_ldflag => "",
|
2016-02-05 14:17:33 +00:00
|
|
|
shared_rcflag => "",
|
2015-05-20 18:03:20 +00:00
|
|
|
shared_extension => "",
|
2016-02-27 10:25:33 +00:00
|
|
|
|
Refactor config - @MK1MF_Builds out, general build scheme in
Time to get rid of @MK1MF_Builds and introduce a more flexible
'build_scheme' configuration key. Its value may be a string or an
array of strings, meaning we need to teach resolve_config how to
handle ARRAY referenses.
The build scheme is a word that selects a function to create the
appropriate result files for a certain configuration. Currently valid
build schemes aer "mk1mf" and "unixmake", the plan is however to add
at least one other for a more universal build scheme.
Incidently, this also adds the functions 'add' and 'add_before', which
can be used in a configuration, so instead of having to repeatedly
write a sub like this:
key1 => sub { join(" ", @_, "myvalues"); },
key2 => sub { join(" ", "myvalues", @_); },
one could write this:
key1 => add(" ", "myvalues"),
key2 => add_before(" ", "myvalues"),
The good point with 'add' and 'add_before' is that they handle
inheritances where the values are a misture of scalars and ARRAYs. If
there are any ARRAY to be found, the resulting value will be an ARRAY,
otherwise it will be a scalar with all the incoming valued joined
together with the separator given as first argument to add/add_before.
Reviewed-by: Rich Salz <rsalz@openssl.org>
2015-05-18 12:31:49 +00:00
|
|
|
build_scheme => "unixmake",
|
2016-02-27 10:25:33 +00:00
|
|
|
build_file => "Makefile",
|
|
|
|
},
|
|
|
|
|
|
|
|
BASE_common => {
|
2016-02-27 10:37:33 +00:00
|
|
|
template => 1,
|
|
|
|
defines =>
|
|
|
|
[ sub {
|
|
|
|
unless ($disabled{zlib}) {
|
|
|
|
if (defined($disabled{"zlib-dynamic"})) {
|
|
|
|
return "ZLIB";
|
|
|
|
} else {
|
|
|
|
return "ZLIB_SHARED";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (); }
|
|
|
|
],
|
2016-02-27 10:25:33 +00:00
|
|
|
},
|
|
|
|
|
|
|
|
BASE_unix => {
|
|
|
|
inherit_from => [ "BASE_common" ],
|
|
|
|
template => 1,
|
|
|
|
|
2016-02-27 10:37:33 +00:00
|
|
|
ex_libs =>
|
|
|
|
sub {
|
|
|
|
unless ($disabled{zlib}) {
|
|
|
|
if (defined($disabled{"zlib-dynamic"})) {
|
|
|
|
if (defined($withargs{zlib_lib})) {
|
|
|
|
return "-L".$withargs{zlib_lib}." -lz";
|
|
|
|
} else {
|
|
|
|
return "-lz";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (); },
|
|
|
|
|
2016-02-27 10:25:33 +00:00
|
|
|
build_scheme => "unixmake",
|
|
|
|
build_file => "Makefile",
|
|
|
|
},
|
|
|
|
|
|
|
|
BASE_Windows => {
|
|
|
|
inherit_from => [ "BASE_common" ],
|
|
|
|
template => 1,
|
|
|
|
|
2016-02-27 10:37:33 +00:00
|
|
|
ex_libs =>
|
|
|
|
sub {
|
|
|
|
unless ($disabled{zlib}) {
|
|
|
|
if (defined($disabled{"zlib-dynamic"})) {
|
|
|
|
return "zlib1.lib";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (); },
|
|
|
|
|
2016-02-27 10:25:33 +00:00
|
|
|
build_scheme => [ "mk1mf" ],
|
|
|
|
},
|
|
|
|
|
|
|
|
BASE_VMS => {
|
|
|
|
inherit_from => [ "BASE_common" ],
|
|
|
|
template => 1,
|
|
|
|
|
2016-02-27 10:37:33 +00:00
|
|
|
ex_libs =>
|
|
|
|
sub {
|
|
|
|
unless ($disabled{zlib}) {
|
|
|
|
if (defined($disabled{"zlib-dynamic"})) {
|
|
|
|
if (defined($withargs{zlib_lib})) {
|
|
|
|
return $withargs{zlib_lib}.'GNV$LIBZSHR.EXE/SHARED'
|
|
|
|
} else {
|
|
|
|
return 'GNV$LIBZSHR/SHARE';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (); },
|
|
|
|
|
2016-02-27 10:25:33 +00:00
|
|
|
build_file => "descrip.mms",
|
|
|
|
build_scheme => [ "unified", "VMS" ],
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
|
2016-02-18 17:43:56 +00:00
|
|
|
uplink_common => {
|
|
|
|
template => 1,
|
2016-02-24 23:17:59 +00:00
|
|
|
apps_aux_src => add("../ms/applink.c"),
|
2016-03-02 08:34:26 +00:00
|
|
|
uplink_aux_src => add("../ms/uplink.c"),
|
2016-02-24 23:17:59 +00:00
|
|
|
shared_defines => add("OPENSSL_USE_APPLINK", { separator => undef }),
|
2016-02-18 17:43:56 +00:00
|
|
|
},
|
|
|
|
x86_uplink => {
|
|
|
|
inherit_from => [ "uplink_common" ],
|
|
|
|
template => 1,
|
2016-03-02 08:34:26 +00:00
|
|
|
uplink_aux_src => add("uplink-x86.s"),
|
2016-02-18 17:43:56 +00:00
|
|
|
},
|
|
|
|
x86_64_uplink => {
|
|
|
|
inherit_from => [ "uplink_common" ],
|
|
|
|
template => 1,
|
2016-03-02 08:34:26 +00:00
|
|
|
uplink_aux_src => add("uplink-x86_64.s"),
|
2016-02-18 17:43:56 +00:00
|
|
|
},
|
|
|
|
ia64_uplink => {
|
|
|
|
inherit_from => [ "uplink_common" ],
|
|
|
|
template => 1,
|
2016-03-02 08:34:26 +00:00
|
|
|
uplink_aux_src => add("uplink-ia64.s"),
|
2016-02-18 17:43:56 +00:00
|
|
|
},
|
|
|
|
|
2015-05-18 00:54:28 +00:00
|
|
|
x86_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "x86cpuid.s",
|
|
|
|
bn_asm_src => "bn-586.s co-586.s x86-mont.s x86-gf2m.s",
|
|
|
|
ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86.s",
|
|
|
|
des_asm_src => "des-586.s crypt586.s",
|
|
|
|
aes_asm_src => "aes-586.s vpaes-x86.s aesni-x86.s",
|
|
|
|
bf_asm_src => "bf-586.s",
|
|
|
|
md5_asm_src => "md5-586.s",
|
|
|
|
cast_asm_src => "cast-586.s",
|
|
|
|
sha1_asm_src => "sha1-586.s sha256-586.s sha512-586.s",
|
|
|
|
rc4_asm_src => "rc4-586.s",
|
|
|
|
rmd160_asm_src => "rmd-586.s",
|
|
|
|
rc5_asm_src => "rc5-586.s",
|
|
|
|
wp_asm_src => "wp_block.c wp-mmx.s",
|
|
|
|
cmll_asm_src => "cmll-x86.s",
|
|
|
|
modes_asm_src => "ghash-x86.s",
|
|
|
|
padlock_asm_src => "e_padlock-x86.s",
|
2016-02-09 22:08:30 +00:00
|
|
|
chacha_asm_src => "chacha-x86.s",
|
|
|
|
poly1305_asm_src=> "poly1305-x86.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
x86_elf_asm => {
|
|
|
|
template => 1,
|
|
|
|
inherit_from => [ "x86_asm" ],
|
|
|
|
perlasm_scheme => "elf"
|
|
|
|
},
|
|
|
|
x86_64_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "x86_64cpuid.s",
|
|
|
|
bn_asm_src => "asm/x86_64-gcc.c x86_64-mont.s x86_64-mont5.s x86_64-gf2m.s rsaz_exp.c rsaz-x86_64.s rsaz-avx2.s",
|
|
|
|
ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s",
|
|
|
|
aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
|
|
|
|
md5_asm_src => "md5-x86_64.s",
|
|
|
|
sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
|
|
|
|
rc4_asm_src => "rc4-x86_64.s rc4-md5-x86_64.s",
|
|
|
|
wp_asm_src => "wp-x86_64.s",
|
|
|
|
cmll_asm_src => "cmll-x86_64.s cmll_misc.c",
|
|
|
|
modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s",
|
|
|
|
padlock_asm_src => "e_padlock-x86_64.s",
|
2016-02-09 22:08:30 +00:00
|
|
|
chacha_asm_src => "chacha-x86_64.s",
|
|
|
|
poly1305_asm_src=> "poly1305-x86_64.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
ia64_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "ia64cpuid.s",
|
|
|
|
bn_asm_src => "bn-ia64.s ia64-mont.s",
|
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c aes-ia64.s",
|
|
|
|
md5_asm_src => "md5-ia64.s",
|
|
|
|
sha1_asm_src => "sha1-ia64.s sha256-ia64.s sha512-ia64.s",
|
2016-02-01 16:48:14 +00:00
|
|
|
rc4_asm_src => "rc4-ia64.s rc4_skey.c",
|
2016-01-29 18:45:51 +00:00
|
|
|
modes_asm_src => "ghash-ia64.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "void"
|
|
|
|
},
|
|
|
|
sparcv9_asm => {
|
|
|
|
template => 1,
|
2016-02-01 16:48:14 +00:00
|
|
|
cpuid_asm_src => "sparcv9cap.c sparccpuid.S",
|
|
|
|
bn_asm_src => "asm/sparcv8plus.S sparcv9-mont.s sparcv9a-mont.s vis3-mont.s sparct4-mont.S sparcv9-gf2m.S",
|
|
|
|
ec_asm_src => "ecp_nistz256.c ecp_nistz256-sparcv9.S",
|
|
|
|
des_asm_src => "des_enc-sparc.S fcrypt_b.c dest4-sparcv9.s",
|
2016-01-29 18:45:51 +00:00
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c aes-sparcv9.s aest4-sparcv9.s",
|
2016-02-01 16:48:14 +00:00
|
|
|
md5_asm_src => "md5-sparcv9.S",
|
|
|
|
sha1_asm_src => "sha1-sparcv9.S sha256-sparcv9.S sha512-sparcv9.S",
|
2016-01-29 18:45:51 +00:00
|
|
|
cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c cmllt4-sparcv9.s",
|
|
|
|
modes_asm_src => "ghash-sparcv9.s",
|
2016-02-13 16:44:45 +00:00
|
|
|
poly1305_asm_src=> "poly1305-sparcv9.S",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "void"
|
|
|
|
},
|
|
|
|
sparcv8_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "",
|
2016-02-01 16:48:14 +00:00
|
|
|
bn_asm_src => "asm/sparcv8.S",
|
|
|
|
des_asm_src => "des_enc-sparc.S fcrypt_b.c",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "void"
|
|
|
|
},
|
|
|
|
alpha_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "alphacpuid.s",
|
2016-02-01 16:48:14 +00:00
|
|
|
bn_asm_src => "bn_asm.c alpha-mont.s",
|
2016-01-29 18:45:51 +00:00
|
|
|
sha1_asm_src => "sha1-alpha.s",
|
|
|
|
modes_asm_src => "ghash-alpha.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "void"
|
|
|
|
},
|
|
|
|
mips32_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
bn_asm_src => "bn-mips.s mips-mont.s",
|
|
|
|
aes_asm_src => "aes_cbc.c aes-mips.S",
|
|
|
|
sha1_asm_src => "sha1-mips.S sha256-mips.S",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
mips64_asm => {
|
|
|
|
inherit_from => [ "mips32_asm" ],
|
|
|
|
template => 1,
|
2016-02-24 23:17:59 +00:00
|
|
|
sha1_asm_src => add("sha512-mips.S")
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
s390x_asm => {
|
|
|
|
template => 1,
|
2016-02-01 16:48:14 +00:00
|
|
|
cpuid_asm_src => "s390xcap.c s390xcpuid.s",
|
|
|
|
bn_asm_src => "asm/s390x.S s390x-mont.S s390x-gf2m.s",
|
2016-01-29 18:45:51 +00:00
|
|
|
aes_asm_src => "aes-s390x.S aes-ctr.fake aes-xts.fake",
|
2016-02-13 16:44:45 +00:00
|
|
|
sha1_asm_src => "sha1-s390x.S sha256-s390x.S sha512-s390x.S",
|
2016-01-29 18:45:51 +00:00
|
|
|
rc4_asm_src => "rc4-s390x.s",
|
2016-02-13 16:44:45 +00:00
|
|
|
modes_asm_src => "ghash-s390x.S",
|
|
|
|
chacha_asm_src => "chacha-s390x.S",
|
|
|
|
poly1305_asm_src=> "poly1305-s390x.S",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
armv4_asm => {
|
|
|
|
template => 1,
|
2016-02-01 16:48:14 +00:00
|
|
|
cpuid_asm_src => "armcap.c armv4cpuid.S",
|
|
|
|
bn_asm_src => "bn_asm.c armv4-mont.S armv4-gf2m.S",
|
|
|
|
ec_asm_src => "ecp_nistz256.c ecp_nistz256-armv4.S",
|
2016-01-29 18:45:51 +00:00
|
|
|
aes_asm_src => "aes_cbc.c aes-armv4.S bsaes-armv7.S aesv8-armx.S",
|
2016-02-01 16:48:14 +00:00
|
|
|
sha1_asm_src => "sha1-armv4-large.S sha256-armv4.S sha512-armv4.S",
|
|
|
|
modes_asm_src => "ghash-armv4.S ghashv8-armx.S",
|
2016-02-10 10:59:45 +00:00
|
|
|
chacha_asm_src => "chacha-armv4.S",
|
|
|
|
poly1305_asm_src=> "poly1305-armv4.S",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "void"
|
|
|
|
},
|
|
|
|
aarch64_asm => {
|
|
|
|
template => 1,
|
2016-02-01 16:48:14 +00:00
|
|
|
cpuid_asm_src => "armcap.c arm64cpuid.S mem_clr.c",
|
|
|
|
ec_asm_src => "ecp_nistz256.c ecp_nistz256-armv8.S",
|
|
|
|
bn_asm_src => "bn_asm.c armv8-mont.S",
|
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c aesv8-armx.S vpaes-armv8.S",
|
|
|
|
sha1_asm_src => "sha1-armv8.S sha256-armv8.S sha512-armv8.S",
|
|
|
|
modes_asm_src => "ghashv8-armx.S",
|
2016-02-10 10:59:45 +00:00
|
|
|
chacha_asm_src => "chacha-armv8.S",
|
|
|
|
poly1305_asm_src=> "poly1305-armv8.S",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
parisc11_asm => {
|
|
|
|
template => 1,
|
2016-01-29 18:45:51 +00:00
|
|
|
cpuid_asm_src => "pariscid.s",
|
2016-02-01 16:48:14 +00:00
|
|
|
bn_asm_src => "bn_asm.c parisc-mont.s",
|
2016-01-29 18:45:51 +00:00
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c aes-parisc.s",
|
|
|
|
sha1_asm_src => "sha1-parisc.s sha256-parisc.s sha512-parisc.s",
|
|
|
|
rc4_asm_src => "rc4-parisc.s",
|
|
|
|
modes_asm_src => "ghash-parisc.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
perlasm_scheme => "32"
|
|
|
|
},
|
|
|
|
parisc20_64_asm => {
|
|
|
|
template => 1,
|
|
|
|
inherit_from => [ "parisc11_asm" ],
|
|
|
|
perlasm_scheme => "64",
|
|
|
|
},
|
|
|
|
ppc64_asm => {
|
|
|
|
template => 1,
|
2016-02-01 16:48:14 +00:00
|
|
|
cpuid_asm_src => "ppccpuid.s ppccap.c",
|
2016-01-29 18:45:51 +00:00
|
|
|
bn_asm_src => "bn-ppc.s ppc-mont.s ppc64-mont.s",
|
|
|
|
aes_asm_src => "aes_core.c aes_cbc.c aes-ppc.s vpaes-ppc.s aesp8-ppc.s",
|
|
|
|
sha1_asm_src => "sha1-ppc.s sha256-ppc.s sha512-ppc.s sha256p8-ppc.s sha512p8-ppc.s",
|
|
|
|
modes_asm_src => "ghashp8-ppc.s",
|
2016-02-10 10:52:22 +00:00
|
|
|
chacha_asm_src => "chacha-ppc.s",
|
|
|
|
poly1305_asm_src=> "poly1305-ppc.s poly1305-ppcfp.s",
|
2015-05-18 00:54:28 +00:00
|
|
|
},
|
|
|
|
ppc32_asm => {
|
|
|
|
inherit_from => [ "ppc64_asm" ],
|
|
|
|
template => 1
|
|
|
|
},
|
|
|
|
);
|