# -*- Mode: perl -*- my %targets=( DEFAULTS => { template => 1, cflags => "", cppflags => "", lflags => "", defines => [], includes => [], lib_cflags => "", lib_cppflags => "", lib_defines => [], thread_scheme => "(unknown)", # Assume we don't know thread_defines => [], 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 => "", keccak1600_asm_src => "keccak1600.c", unistd => "", shared_target => "", shared_cflag => "", shared_defines => [], shared_ldflag => "", shared_rcflag => "", #### Defaults for the benefit of the config targets who don't inherit #### a BASE and assume Unix defaults #### THESE WILL DISAPPEAR IN OpenSSL 1.2 build_scheme => [ "unified", "unix" ], build_file => "Makefile", AR => "ar", ARFLAGS => "r", CC => "cc", HASHBANGPERL => "/usr/bin/env perl", RANLIB => sub { which("$config{cross_compile_prefix}ranlib") ? "ranlib" : "" }, RC => "windres", #### THESE WILL BE ENABLED IN OpenSSL 1.2 #HASHBANGPERL => "PERL", # Only Unix actually cares }, BASE_common => { template => 1, enable => [], disable => [], defines => sub { my @defs = (); push @defs, "ZLIB" unless $disabled{zlib}; push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"}; return [ @defs ]; }, includes => sub { my @incs = (); push @incs, $withargs{zlib_include} if !$disabled{zlib} && $withargs{zlib_include}; return [ @incs ]; }, }, BASE_unix => { inherit_from => [ "BASE_common" ], template => 1, AR => "ar", ARFLAGS => "r", CC => "cc", lflags => sub { $withargs{zlib_lib} ? "-L".$withargs{zlib_lib} : () }, ex_libs => sub { !defined($disabled{zlib}) && defined($disabled{"zlib-dynamic"}) ? "-lz" : () }, HASHBANGPERL => "/usr/bin/env perl", # Only Unix actually cares RANLIB => sub { which("$config{cross_compile_prefix}ranlib") ? "ranlib" : "" }, RC => "windres", build_scheme => [ "unified", "unix" ], build_file => "Makefile", perl_platform => 'Unix', }, BASE_Windows => { inherit_from => [ "BASE_common" ], template => 1, lib_defines => sub { my @defs = (); unless ($disabled{"zlib-dynamic"}) { my $zlib = $withargs{zlib_lib} // "ZLIB1"; push @defs, 'LIBZ=' . (quotify("perl", $zlib))[0]; } return [ @defs ]; }, ex_libs => sub { unless ($disabled{zlib}) { if (defined($disabled{"zlib-dynamic"})) { return $withargs{zlib_lib} // "ZLIB1"; } } return (); }, LD => "link", LDFLAGS => "/nologo", ldoutflag => "/out:", AR => "lib", ARFLAGS => "/nologo", aroutflag => "/out:", RC => "rc", rcoutflag => "/fo", MT => "mt", MTFLAGS => "-nologo", mtinflag => "-manifest ", mtoutflag => "-outputresource:", build_file => "makefile", build_scheme => [ "unified", "windows" ], perl_platform => 'Windows', }, BASE_VMS => { inherit_from => [ "BASE_common" ], template => 1, includes => add(sub { my @incs = (); # GNV$ZLIB_INCLUDE is the standard logical name for later # zlib incarnations. push @incs, 'GNV$ZLIB_INCLUDE:' if !$disabled{zlib} && !$withargs{zlib_include}; return [ @incs ]; }), build_file => "descrip.mms", build_scheme => [ "unified", "VMS" ], perl_platform => 'VMS', }, x86_asm => { template => 1, cast_asm_src => "cast-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", chacha_asm_src => "chacha-x86.s", poly1305_asm_src=> "poly1305-x86.s", }, x86_elf_asm => { template => 1, inherit_from => [ "x86_asm" ], }, x86_64_asm => { template => 1, 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", chacha_asm_src => "chacha-x86_64.s", poly1305_asm_src=> "poly1305-x86_64.s", keccak1600_asm_src => "keccak1600-x86_64.s", }, ia64_asm => { template => 1, modes_asm_src => "ghash-ia64.s", chacha_asm_src => "chacha-ia64.S", poly1305_asm_src=> "asm/poly1305-ia64.S", }, sparcv9_asm => { template => 1, cmll_asm_src => "camellia.c cmll_misc.c cmll_cbc.c cmllt4-sparcv9.S", modes_asm_src => "ghash-sparcv9.S", poly1305_asm_src=> "poly1305-sparcv9.S", }, sparcv8_asm => { template => 1, }, alpha_asm => { template => 1, modes_asm_src => "ghash-alpha.S", }, mips32_asm => { template => 1, }, mips64_asm => { inherit_from => [ "mips32_asm" ], template => 1, poly1305_asm_src=> "poly1305-mips.S", }, s390x_asm => { template => 1, rc4_asm_src => "rc4-s390x.s", modes_asm_src => "ghash-s390x.S", chacha_asm_src => "chacha-s390x.S", poly1305_asm_src=> "poly1305-s390x.S", keccak1600_asm_src => "keccak1600-s390x.S", }, armv4_asm => { template => 1, modes_asm_src => "ghash-armv4.S ghashv8-armx.S", chacha_asm_src => "chacha-armv4.S", poly1305_asm_src=> "poly1305-armv4.S", keccak1600_asm_src => "keccak1600-armv4.S", }, aarch64_asm => { template => 1, modes_asm_src => "ghashv8-armx.S", chacha_asm_src => "chacha-armv8.S", poly1305_asm_src=> "poly1305-armv8.S", keccak1600_asm_src => "keccak1600-armv8.S", }, parisc11_asm => { template => 1, rc4_asm_src => "rc4-parisc.s", modes_asm_src => "ghash-parisc.s", }, parisc20_64_asm => { template => 1, inherit_from => [ "parisc11_asm" ], }, ppc32_asm => { template => 1, modes_asm_src => "ghashp8-ppc.s", chacha_asm_src => "chacha-ppc.s", poly1305_asm_src=> "poly1305-ppc.s poly1305-ppcfp.s", }, ppc64_asm => { inherit_from => [ "ppc32_asm" ], template => 1, keccak1600_asm_src => "keccak1600-ppc64.s", }, );