shared_defflag => '',
perl_platform => 'Windows::cppbuilder',
uplink_arch => 'common',
+ },
+ "BC-64" => {
+ inherit_from => [ "BASE_Windows" ],
+ sys_id => "WIN64",
+ bn_ops => "BN_LLONG",
+ thread_scheme => "winthreads",
+ cc => "bcc64",
+ CPP => "cpp64 -oCON -Sc -Sr",
+ defines => add("WIN32_LEAN_AND_MEAN", "OPENSSL_SYS_WIN64",
+ "L_ENDIAN", "DSO_WIN32", "_stricmp=stricmp",
+ "_strnicmp=strnicmp", "_setmode=setmode"),
+ cflags => picker(default => add("-q -c",
+ threads("-tM"),
+ shared("-tR")),
+ debug => "-Od -v -vi- -D_DEBUG",
+ release => "-O2"),
+ bin_cflags => "-tWC",
+ lib_cflags => shared("-tWD -D_WINDLL -D_DLL"),
+ coutflag => "-o",
+
+ # -Sx isn't documented, but 'cpp64 -H -S' explains it:
+ #
+ # -Sx Omit preprocessed text in output
+ makedepcmd => "cpp64 -oCON -Sx -Hp",
+ makedep_scheme => "embarcadero",
+
+ LD => "ilink64",
+ LDFLAGS => picker(default => "-x -Gn -q -w-dup",
+ debug => '-j"$(BDS)\lib\win64\debug" ' .
+ '-L"$(BDS)\lib\win64\debug" -v',
+ release => '-j"$(BDS)\lib\win64\release" ' .
+ '-L"$(BDS)\lib\win64\release"'),
+ bin_lflags => "-ap -Tpe c0x64.o wildargs.o",
+ ldoutflag => ",",
+ ldpostoutflag => ",,",
+ ld_resp_delim => " +\n",
+ ex_libs => add(sub {
+ my @ex_libs = ("import64.a",
+ ($disabled{shared}
+ ? ($disabled{threads} ? "cw64.a" : "cw64mt.a")
+ : ($disabled{threads} ? "cw64i.a" : "cw64mti.a")));
+ push @ex_libs, "ws2_32.a" unless $disabled{sock};
+ return join(" ", @ex_libs);
+ }),
+ AR => "tlib",
+ ARFLAGS => "/P256 /N /u",
+ ar_resp_delim => " &\n",
+ RC => "brcc32",
+ RCFLAGS => '-i"$(BDS)\include\windows\sdk"',
+ rcoutflag => "-fo",
+ shared_target => "win-shared",
+ shared_ldflag => "-aa -Tpd c0d64.o",
+ lddefflag => ",",
+ ldresflag => ",",
+ ld_implib_rule => 'implib -a $< $**',
+ dso_scheme => "win64",
+ shared_defflag => '',
+ perl_platform => 'Windows::cppbuilder',
+ uplink_arch => 'common',
}
);
=========================================
This toolchain (a descendant of Turbo/Borland C++) is an alternative to MSVC.
-OpenSSL currently includes an experimental 32-bit configuration targeting the
-Clang-based compiler (`bcc32c.exe`) in v10.3.3 Community Edition.
+OpenSSL currently includes experimental 32-bit and 64-bit configurations targeting the
+Clang-based compiler (`bcc32c.exe` and `bcc64.exe`) in v10.3.3 Community Edition.
<https://www.embarcadero.com/products/cbuilder/starter>
1. Install Perl.
3. Go to the root of the OpenSSL source directory and run:
`perl Configure BC-32 --prefix=%CD%`
+ for Win64 builds use:
+ `perl Configure BC-64 --prefix=%CD%`
4. `make -N`