When building DLLs, hack the library name in the .def file
authorRichard Levitte <levitte@openssl.org>
Wed, 16 Mar 2016 15:50:18 +0000 (16:50 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 16 Mar 2016 17:11:13 +0000 (18:11 +0100)
util/mkdef.pl assumes it knows what the resulting library name will
be.  Really, it shouldn't, but changing it will break classic native
Windows builds, so we leave it for now and change the LIBRARY line
externally when needed instead.

Reviewed-by: Matt Caswell <matt@openssl.org>
Configurations/windows-makefile.tmpl

index cb1b4e696d90b67899c5bc97c0af596de228b19d..7a6a58f44bfde0488a5f171d095c8737eb5ebebc 100644 (file)
@@ -282,12 +282,18 @@ EOF
                            rel2abs($config{builddir}));
      my $target = shlib_import($lib);
      return <<"EOF"
-$target: $deps $ordinalsfile
+$target: $deps $ordinalsfile $mkdef_pl
        \$(PERL) $mkdef_pl "$mkdef_key" 32 > $shlib.def
+       \$(PERL) -i.tmp -pe "s|^LIBRARY\\s+${mkdef_key}32|LIBRARY $shlib|;" $shlib.def
+       DEL $shlib.def.tmp
        \$(LD) \$(LDFLAGS) \$(LIB_LDFLAGS) \\
                /implib:$target \$(LDOUTFLAG)$shlib$shlibext /def:$shlib.def @<<
 $objs$linklibs \$(EX_LIBS)
 <<
+       DEL /F apps\\$shlib$shlibext
+       DEL /F test\\$shlib$shlibext
+       COPY $shlib$shlibext apps
+       COPY $shlib$shlibext test
 EOF
  }
  sub obj2dso {