1

I'm trying to compile OpenSSL 1.1.1d version locally.

Due to my project, I need to edit windows-makefile.tmp under Configuration folder. I have to prepend the file extensions like so:

 our $objext = $target{obj_extension} || "_vc10.obj";
 our $resext = $target{res_extension} || "_vc10.res";
 our $depext = $target{dep_extension} || "_vc10.d";
 our $exeext = $target{exe_extension} || "_vc10.exe";
 our $libext = $target{lib_extension} || "_vc10.lib";
 our $shlibext = $target{shared_extension} || "_vc10.dll";

Compilation is finished successfully, no problems. But I had errors whenever my program uses libcrypto. Upon inspection of the generated libcrypto-1_1_vc10.lib, I found out that the lib uses .dll with name

libcrypto-1_1.dll

instead of the prepended

libcrypto-1_1_vc10.dll

I expected the latter will be used since, well, this will be the generated .dll file. I also tried to prepend the following file extensions, but it didn't do much.

 our $shlibextimport = $target{shared_import_extension} || ".lib";
 our $dsoext = $target{dso_extension} || ".dll";

I skimmed through the generated Makefile but I don't see much that will generated only libcrypto-1_1.dll (Or probably I'm not yet familiar on how Makefile works).

Due to my project, I need to keep the _vc10 on the file names.

Are there other parts of the windows-makefile.tmp or other configuration that I need to edit? Any clues will be beneficial. Thank you in advance.

JayM
  • 9
  • 3

1 Answers1

0

After some investigation and thanks to the notes of my colleagues, I was able to resolve this issue.

This maybe a hackish way to resolve this but this is how I fixed my issue.

In

util/mkdef.pl

there is a function

sub print_def_file
{
...
my $libname = $name;
...

Update the $libname value to your desired libname referenced by libcrypto.lib or libssl.lib

ex:

my $libname = $name . "_vc10";

PS: If there are other ways to resolve this, please let me know.

JayM
  • 9
  • 3