2020-11-20 07:39:12 +08:00
|
|
|
my %targets = (
|
|
|
|
"BC-32" => {
|
|
|
|
inherit_from => [ "BASE_Windows" ],
|
|
|
|
sys_id => "WIN32",
|
|
|
|
bn_ops => "BN_LLONG",
|
|
|
|
thread_scheme => "winthreads",
|
|
|
|
cc => "bcc32c",
|
2020-12-10 22:53:07 +08:00
|
|
|
CPP => "cpp32 -oCON -Sc -Sr",
|
2020-11-20 07:39:12 +08:00
|
|
|
defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN32",
|
|
|
|
"L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp",
|
|
|
|
"_strnicmp=strnicmp", "_malloca=malloc",
|
|
|
|
"_freea=free", "_setmode=setmode"),
|
2020-12-07 07:04:45 +08:00
|
|
|
cflags => picker(default => add("-q -c",
|
|
|
|
threads("-tM"),
|
|
|
|
shared("-tR")),
|
2020-11-20 07:39:12 +08:00
|
|
|
debug => "-Od -v -vi- -D_DEBUG",
|
|
|
|
release => "-O2"),
|
2020-12-07 07:04:45 +08:00
|
|
|
bin_cflags => "-tWC",
|
|
|
|
lib_cflags => shared("-tWD -D_WINDLL -D_DLL"),
|
2020-11-20 07:39:12 +08:00
|
|
|
coutflag => "-o",
|
Configuration: rework how dependency making is handled
Previously, we had dependency making pretty much hard coded in the
build file templates, with a bit of an exception for Unix family
platforms, where we had different cases depending on what dependency
making program was found.
With the Embarcadero C++ builder, a separate scheme appeared, with a
different logic.
This change merges the two, and introduces two config target
attributes:
makedepcmd The program to use, where this is relevant.
This replaces the earlier configuration
attribute 'makedepprog'.
makedep_scheme This is a keyword that can be used by build
files templates to produce different sorts of
commands, but most importantly, to pass as
argument to util/add-depend.pl, which uses
this keyword as a "producer" for the
dependency lines.
If the config target doesn't define the 'makedep_scheme' attribute,
Configure tries to figure it out by looking for GCC compatible
compilers or for the 'makedepend' command.
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/15006)
2021-04-26 15:17:05 +08:00
|
|
|
|
|
|
|
# -Sx isn't documented, but 'cpp32 -H -S' explains it:
|
|
|
|
#
|
|
|
|
# -Sx Omit preprocessed text in output
|
|
|
|
makedepcmd => "cpp32 -oCON -Sx -Hp",
|
|
|
|
makedep_scheme => "embarcadero",
|
|
|
|
|
2020-11-20 07:39:12 +08:00
|
|
|
LD => "ilink32",
|
2020-12-14 02:01:46 +08:00
|
|
|
LDFLAGS => picker(default => "-x -Gn -q -w-dup",
|
2020-12-07 07:04:45 +08:00
|
|
|
debug => '-j"$(BDS)\lib\win32c\debug" ' .
|
|
|
|
'-L"$(BDS)\lib\win32c\debug" -v',
|
|
|
|
release => '-j"$(BDS)\lib\win32c\release" ' .
|
|
|
|
'-L"$(BDS)\lib\win32c\release"'),
|
2020-12-14 02:01:46 +08:00
|
|
|
bin_lflags => "-ap -Tpe c0x32.obj wildargs.obj",
|
2020-11-20 07:39:12 +08:00
|
|
|
ldoutflag => ",",
|
|
|
|
ldpostoutflag => ",,",
|
|
|
|
ld_resp_delim => " +\n",
|
|
|
|
ex_libs => add(sub {
|
2020-12-07 07:04:45 +08:00
|
|
|
my @ex_libs = ("import32.lib",
|
|
|
|
($disabled{shared}
|
|
|
|
? ($disabled{threads} ? "cw32.lib" : "cw32mt.lib")
|
|
|
|
: ($disabled{threads} ? "cw32i.lib" : "cw32mti.lib")));
|
2020-12-15 07:31:49 +08:00
|
|
|
push @ex_libs, "ws2_32.lib" unless $disabled{sock};
|
2020-11-20 07:39:12 +08:00
|
|
|
return join(" ", @ex_libs);
|
|
|
|
}),
|
|
|
|
AR => "tlib",
|
|
|
|
ARFLAGS => "/P256 /N /u",
|
|
|
|
ar_resp_delim => " &\n",
|
2020-12-09 08:29:14 +08:00
|
|
|
RC => "brcc32",
|
|
|
|
RCFLAGS => '-i"$(BDS)\include\windows\sdk"',
|
|
|
|
rcoutflag => "-fo",
|
2020-12-07 07:04:45 +08:00
|
|
|
shared_target => "win-shared",
|
2020-12-14 02:01:46 +08:00
|
|
|
shared_ldflag => "-aa -Tpd c0d32.obj",
|
2020-12-07 07:04:45 +08:00
|
|
|
lddefflag => ",",
|
2020-12-09 08:29:14 +08:00
|
|
|
ldresflag => ",",
|
2020-12-14 02:01:46 +08:00
|
|
|
ld_implib_rule => 'implib -a $< $**',
|
2020-12-07 07:04:45 +08:00
|
|
|
dso_scheme => "win32",
|
2020-12-14 02:01:46 +08:00
|
|
|
shared_defflag => '',
|
|
|
|
perl_platform => 'Windows::cppbuilder',
|
2020-12-14 02:04:43 +08:00
|
|
|
uplink_arch => 'common',
|
2020-11-20 07:39:12 +08:00
|
|
|
}
|
|
|
|
);
|