Path: blob/main/crypto/openssl/Configurations/00-base-templates.conf
34879 views
# -*- Mode: perl -*-1my %targets=(2DEFAULTS => {3template => 1,45cflags => "",6cppflags => "",7lflags => "",8defines => [],9includes => [],10lib_cflags => "",11lib_cppflags => "",12lib_defines => [],13thread_scheme => "(unknown)", # Assume we don't know14thread_defines => [],1516unistd => "<unistd.h>",17shared_target => "",18shared_cflag => "",19shared_defines => [],20shared_ldflag => "",21shared_rcflag => "",2223#### Defaults for the benefit of the config targets who don't inherit24#### a BASE and assume Unix defaults25#### THESE WILL DISAPPEAR IN OpenSSL 1.226build_scheme => [ "unified", "unix" ],27build_file => "Makefile",2829AR => "(unused)",30ARFLAGS => "(unused)",31CC => "cc",32HASHBANGPERL => "/usr/bin/env perl",33RANLIB => sub { which("$config{cross_compile_prefix}ranlib")34? "ranlib" : "" },35RC => "windres",3637#### THESE WILL BE ENABLED IN OpenSSL 1.238#HASHBANGPERL => "PERL", # Only Unix actually cares39},4041BASE_common => {42template => 1,4344enable => [],45disable => [],4647defines =>48sub {49my @defs = ( 'OPENSSL_BUILDING_OPENSSL' );50push @defs, "BROTLI" unless $disabled{brotli};51push @defs, "BROTLI_SHARED" unless $disabled{"brotli-dynamic"};52push @defs, "ZLIB" unless $disabled{zlib};53push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"};54push @defs, "ZSTD" unless $disabled{zstd};55push @defs, "ZSTD_SHARED" unless $disabled{"zstd-dynamic"};56return [ @defs ];57},58includes =>59sub {60my @incs = ();61push @incs, $withargs{jitter_include}62if !$disabled{jitter} && $withargs{jitter_include};63push @incs, $withargs{brotli_include}64if !$disabled{brotli} && $withargs{brotli_include};65push @incs, $withargs{zlib_include}66if !$disabled{zlib} && $withargs{zlib_include};67push @incs, $withargs{zstd_include}68if !$disabled{zstd} && $withargs{zstd_include};69return [ @incs ];70},71},7273BASE_unix => {74inherit_from => [ "BASE_common" ],75template => 1,7677AR => "ar",78ARFLAGS => "qc",79CC => "cc",80OBJCOPY => "objcopy",81bin_cflags =>82sub {83my @flags = ();84if (!defined($disabled{pie})) {85push(@flags, "-fPIE");86}87return join(" ", @flags);88},89bin_lflags =>90sub {91my @flags = ();92if (!defined($disabled{pie})) {93push(@flags, "-pie");94}95return join(" ", @flags);96},97lflags =>98sub {99my @libs = ();100push(@libs, "-L".$withargs{jitter_lib}) if $withargs{jitter_lib};101push(@libs, "-L".$withargs{zlib_lib}) if $withargs{zlib_lib};102push(@libs, "-L".$withargs{brotli_lib}) if $withargs{brotli_lib};103push(@libs, "-L".$withargs{zstd_lib}) if $withargs{zstd_lib};104return join(" ", @libs);105},106ex_libs =>107sub {108my @libs = ();109push(@libs, "-l:libjitterentropy.a") if !defined($disabled{jitter});110push(@libs, "-lz") if !defined($disabled{zlib}) && defined($disabled{"zlib-dynamic"});111if (!defined($disabled{brotli}) && defined($disabled{"brotli-dynamic"})) {112push(@libs, "-lbrotlienc");113push(@libs, "-lbrotlidec");114push(@libs, "-lbrotlicommon");115push(@libs, "-lm");116}117push(@libs, "-lzstd") if !defined($disabled{zstd}) && defined($disabled{"zstd-dynamic"});118return join(" ", @libs);119},120HASHBANGPERL => "/usr/bin/env perl", # Only Unix actually cares121RANLIB => sub { which("$config{cross_compile_prefix}ranlib")122? "ranlib" : "" },123RC => "windres",124125build_scheme => [ "unified", "unix" ],126build_file => "Makefile",127128perl_platform => 'Unix',129},130131BASE_Windows => {132inherit_from => [ "BASE_common" ],133template => 1,134135lib_defines =>136sub {137my @defs = ();138unless ($disabled{"zlib-dynamic"}) {139my $zlib = $withargs{zlib_lib} // "ZLIB1";140push @defs, 'LIBZ=' . (quotify("perl", $zlib))[0];141}142return [ @defs ];143},144ex_libs =>145sub {146my @libs = ();147unless ($disabled{zlib}) {148if (defined($disabled{"zlib-dynamic"})) {149push(@libs, $withargs{zlib_lib} // "ZLIB1");150}151}152unless ($disabled{zstd}) {153if (defined($disabled{"zstd-dynamic"})) {154push(@libs, $withargs{zstd_lib} // "libzstd");155}156}157unless ($disabled{brotli}) {158if (defined($disabled{"brotli-dynamic"})) {159my $path = "";160if (defined($withargs{brotli_lib})) {161$path = $withargs{brotli_lib} . "\\";162}163push(@libs, $path . "brotlicommon.lib");164push(@libs, $path . "brotlidec.lib");165push(@libs, $path . "brotlienc.lib");166}167}168return join(" ", @libs);169},170171MT => "mt",172MTFLAGS => "-nologo",173mtinflag => "-manifest ",174mtoutflag => "-outputresource:",175176build_file => "makefile",177build_scheme => [ "unified", "windows" ],178179perl_platform => 'Windows',180},181182BASE_VMS => {183inherit_from => [ "BASE_common" ],184template => 1,185186includes =>187add(sub {188my @incs = ();189# GNV$ZLIB_INCLUDE is the standard logical name for later190# zlib incarnations.191push @incs, 'GNV$ZLIB_INCLUDE:'192if !$disabled{zlib} && !$withargs{zlib_include};193return [ @incs ];194}),195196build_file => "descrip.mms",197build_scheme => [ "unified", "VMS" ],198199perl_platform => 'VMS',200},201);202203204