Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/openssl/Configurations/00-base-templates.conf
34879 views
1
# -*- Mode: perl -*-
2
my %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, "BROTLI" unless $disabled{brotli};
52
push @defs, "BROTLI_SHARED" unless $disabled{"brotli-dynamic"};
53
push @defs, "ZLIB" unless $disabled{zlib};
54
push @defs, "ZLIB_SHARED" unless $disabled{"zlib-dynamic"};
55
push @defs, "ZSTD" unless $disabled{zstd};
56
push @defs, "ZSTD_SHARED" unless $disabled{"zstd-dynamic"};
57
return [ @defs ];
58
},
59
includes =>
60
sub {
61
my @incs = ();
62
push @incs, $withargs{jitter_include}
63
if !$disabled{jitter} && $withargs{jitter_include};
64
push @incs, $withargs{brotli_include}
65
if !$disabled{brotli} && $withargs{brotli_include};
66
push @incs, $withargs{zlib_include}
67
if !$disabled{zlib} && $withargs{zlib_include};
68
push @incs, $withargs{zstd_include}
69
if !$disabled{zstd} && $withargs{zstd_include};
70
return [ @incs ];
71
},
72
},
73
74
BASE_unix => {
75
inherit_from => [ "BASE_common" ],
76
template => 1,
77
78
AR => "ar",
79
ARFLAGS => "qc",
80
CC => "cc",
81
OBJCOPY => "objcopy",
82
bin_cflags =>
83
sub {
84
my @flags = ();
85
if (!defined($disabled{pie})) {
86
push(@flags, "-fPIE");
87
}
88
return join(" ", @flags);
89
},
90
bin_lflags =>
91
sub {
92
my @flags = ();
93
if (!defined($disabled{pie})) {
94
push(@flags, "-pie");
95
}
96
return join(" ", @flags);
97
},
98
lflags =>
99
sub {
100
my @libs = ();
101
push(@libs, "-L".$withargs{jitter_lib}) if $withargs{jitter_lib};
102
push(@libs, "-L".$withargs{zlib_lib}) if $withargs{zlib_lib};
103
push(@libs, "-L".$withargs{brotli_lib}) if $withargs{brotli_lib};
104
push(@libs, "-L".$withargs{zstd_lib}) if $withargs{zstd_lib};
105
return join(" ", @libs);
106
},
107
ex_libs =>
108
sub {
109
my @libs = ();
110
push(@libs, "-l:libjitterentropy.a") if !defined($disabled{jitter});
111
push(@libs, "-lz") if !defined($disabled{zlib}) && defined($disabled{"zlib-dynamic"});
112
if (!defined($disabled{brotli}) && defined($disabled{"brotli-dynamic"})) {
113
push(@libs, "-lbrotlienc");
114
push(@libs, "-lbrotlidec");
115
push(@libs, "-lbrotlicommon");
116
push(@libs, "-lm");
117
}
118
push(@libs, "-lzstd") if !defined($disabled{zstd}) && defined($disabled{"zstd-dynamic"});
119
return join(" ", @libs);
120
},
121
HASHBANGPERL => "/usr/bin/env perl", # Only Unix actually cares
122
RANLIB => sub { which("$config{cross_compile_prefix}ranlib")
123
? "ranlib" : "" },
124
RC => "windres",
125
126
build_scheme => [ "unified", "unix" ],
127
build_file => "Makefile",
128
129
perl_platform => 'Unix',
130
},
131
132
BASE_Windows => {
133
inherit_from => [ "BASE_common" ],
134
template => 1,
135
136
lib_defines =>
137
sub {
138
my @defs = ();
139
unless ($disabled{"zlib-dynamic"}) {
140
my $zlib = $withargs{zlib_lib} // "ZLIB1";
141
push @defs, 'LIBZ=' . (quotify("perl", $zlib))[0];
142
}
143
return [ @defs ];
144
},
145
ex_libs =>
146
sub {
147
my @libs = ();
148
unless ($disabled{zlib}) {
149
if (defined($disabled{"zlib-dynamic"})) {
150
push(@libs, $withargs{zlib_lib} // "ZLIB1");
151
}
152
}
153
unless ($disabled{zstd}) {
154
if (defined($disabled{"zstd-dynamic"})) {
155
push(@libs, $withargs{zstd_lib} // "libzstd");
156
}
157
}
158
unless ($disabled{brotli}) {
159
if (defined($disabled{"brotli-dynamic"})) {
160
my $path = "";
161
if (defined($withargs{brotli_lib})) {
162
$path = $withargs{brotli_lib} . "\\";
163
}
164
push(@libs, $path . "brotlicommon.lib");
165
push(@libs, $path . "brotlidec.lib");
166
push(@libs, $path . "brotlienc.lib");
167
}
168
}
169
return join(" ", @libs);
170
},
171
172
MT => "mt",
173
MTFLAGS => "-nologo",
174
mtinflag => "-manifest ",
175
mtoutflag => "-outputresource:",
176
177
build_file => "makefile",
178
build_scheme => [ "unified", "windows" ],
179
180
perl_platform => 'Windows',
181
},
182
183
BASE_VMS => {
184
inherit_from => [ "BASE_common" ],
185
template => 1,
186
187
includes =>
188
add(sub {
189
my @incs = ();
190
# GNV$ZLIB_INCLUDE is the standard logical name for later
191
# zlib incarnations.
192
push @incs, 'GNV$ZLIB_INCLUDE:'
193
if !$disabled{zlib} && !$withargs{zlib_include};
194
return [ @incs ];
195
}),
196
197
build_file => "descrip.mms",
198
build_scheme => [ "unified", "VMS" ],
199
200
perl_platform => 'VMS',
201
},
202
);
203
204