1# -*- Mode: perl -*- 2my %targets=( 3 DEFAULTS => { 4 template => 1, 5 6 cflags => "", 7 cppflags => "", 8 lflags => "", 9 defines => [], 10 includes => [], 11 lib_cflags => "", 12 lib_cppflags => "", 13 lib_defines => [], 14 thread_scheme => "(unknown)", # Assume we don't know 15 thread_defines => [], 16 17 unistd => "<unistd.h>", 18 shared_target => "", 19 shared_cflag => "", 20 shared_defines => [], 21 shared_ldflag => "", 22 shared_rcflag => "", 23 24 #### Defaults for the benefit of the config targets who don't inherit 25 #### a BASE and assume Unix defaults 26 #### THESE WILL DISAPPEAR IN OpenSSL 1.2 27 build_scheme => [ "unified", "unix" ], 28 build_file => "Makefile", 29 30 AR => "(unused)", 31 ARFLAGS => "(unused)", 32 CC => "cc", 33 HASHBANGPERL => "/usr/bin/env perl", 34 RANLIB => sub { which("$config{cross_compile_prefix}ranlib") 35 ? "ranlib" : "" }, 36 RC => "windres", 37 38 #### THESE WILL BE ENABLED IN OpenSSL 1.2 39 #HASHBANGPERL => "PERL", # Only Unix actually cares 40 }, 41 42 BASE_common => { 43 template => 1, 44 45 enable => [], 46 disable => [], 47 48 defines => 49 sub { 50 my @defs = ( 'OPENSSL_BUILDING_OPENSSL' ); 51 push @defs, "ZLIB" unless $disabled{zlib}; 52 push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"}; 53 return [ @defs ]; 54 }, 55 includes => 56 sub { 57 my @incs = (); 58 push @incs, $withargs{zlib_include} 59 if !$disabled{zlib} && $withargs{zlib_include}; 60 return [ @incs ]; 61 }, 62 }, 63 64 BASE_unix => { 65 inherit_from => [ "BASE_common" ], 66 template => 1, 67 68 AR => "ar", 69 ARFLAGS => "qc", 70 CC => "cc", 71 lflags => 72 sub { $withargs{zlib_lib} ? "-L".$withargs{zlib_lib} : () }, 73 ex_libs => 74 sub { !defined($disabled{zlib}) 75 && defined($disabled{"zlib-dynamic"}) 76 ? "-lz" : () }, 77 HASHBANGPERL => "/usr/bin/env perl", # Only Unix actually cares 78 RANLIB => sub { which("$config{cross_compile_prefix}ranlib") 79 ? "ranlib" : "" }, 80 RC => "windres", 81 82 build_scheme => [ "unified", "unix" ], 83 build_file => "Makefile", 84 85 perl_platform => 'Unix', 86 }, 87 88 BASE_Windows => { 89 inherit_from => [ "BASE_common" ], 90 template => 1, 91 92 lib_defines => 93 sub { 94 my @defs = (); 95 unless ($disabled{"zlib-dynamic"}) { 96 my $zlib = $withargs{zlib_lib} // "ZLIB1"; 97 push @defs, 'LIBZ=' . (quotify("perl", $zlib))[0]; 98 } 99 return [ @defs ]; 100 }, 101 ex_libs => 102 sub { 103 unless ($disabled{zlib}) { 104 if (defined($disabled{"zlib-dynamic"})) { 105 return $withargs{zlib_lib} // "ZLIB1"; 106 } 107 } 108 return (); 109 }, 110 111 MT => "mt", 112 MTFLAGS => "-nologo", 113 mtinflag => "-manifest ", 114 mtoutflag => "-outputresource:", 115 116 build_file => "makefile", 117 build_scheme => [ "unified", "windows" ], 118 119 perl_platform => 'Windows', 120 }, 121 122 BASE_VMS => { 123 inherit_from => [ "BASE_common" ], 124 template => 1, 125 126 includes => 127 add(sub { 128 my @incs = (); 129 # GNV$ZLIB_INCLUDE is the standard logical name for later 130 # zlib incarnations. 131 push @incs, 'GNV$ZLIB_INCLUDE:' 132 if !$disabled{zlib} && !$withargs{zlib_include}; 133 return [ @incs ]; 134 }), 135 136 build_file => "descrip.mms", 137 build_scheme => [ "unified", "VMS" ], 138 139 perl_platform => 'VMS', 140 }, 141); 142