Configurations/windows-makefile.tmpl: simplify install-path "flavour"-ing.
authorAndy Polyakov <appro@openssl.org>
Sat, 3 Mar 2018 21:26:45 +0000 (22:26 +0100)
committerAndy Polyakov <appro@openssl.org>
Fri, 9 Mar 2018 14:04:44 +0000 (15:04 +0100)
$target{build_scheme} consists of fixed number of elements with 3rd
element denoting VC install-path "flavour", i.e. where to install things.
Instead of looking at 3rd, let's look at last. This allows to override
flavour from template in a simple way.

Configurations/10-main.conf: define generic "flavour" in VC-common
template. Since VC-W32 was the only recognized "flavour", remove
"flavour" definitions from all targets/templates, but VC-WIN32. And
rename VC-W32 to VC-WOW.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5502)

Configurations/10-main.conf
Configurations/windows-makefile.tmpl

index 101d3fcad1469ff74b53f6a9315d6b665f5c81b6..6b57549c66761bcc1e1baf1df69d84bcf90d86f5 100644 (file)
@@ -1386,6 +1386,8 @@ my %targets = (
         thread_scheme    => "winthreads",
         dso_scheme       => "win32",
         apps_aux_src     => add("win32_init.c"),
+        # additional parameter to build_scheme denotes install-path "flavour"
+        build_scheme     => add("VC-common", { separator => undef }),
     },
     "VC-noCE-common" => {
         inherit_from     => [ "VC-common" ],
@@ -1434,7 +1436,6 @@ my %targets = (
             return join(" ", @_, @ex_libs);
         }),
         bn_ops           => "SIXTY_FOUR_BIT EXPORT_VAR_AS_FN",
-        build_scheme     => add("VC-W64", { separator => undef }),
     },
     "VC-WIN64I" => {
         inherit_from     => [ "VC-WIN64-common", asm("ia64_asm"),
@@ -1484,7 +1485,9 @@ my %targets = (
         sys_id           => "WIN32",
         bn_ops           => "BN_LLONG EXPORT_VAR_AS_FN",
         perlasm_scheme   => sub { vc_win32_info()->{perlasm_scheme} },
-        build_scheme     => add("VC-W32", { separator => undef }),
+        # "WOW" stands for "Windows on Windows", and "VC-WOW" engages
+        # some installation path heuristics in windows-makefile.tmpl...
+        build_scheme     => add("VC-WOW", { separator => undef }),
     },
     "VC-CE" => {
         inherit_from     => [ "VC-common" ],
@@ -1539,7 +1542,6 @@ my %targets = (
                 if (env('TARGETCPU') eq "X86");
             return @ex_libs;
         }),
-        build_scheme     => add("VC-WCE", { separator => undef }),
     },
 
 #### MinGW
index 214619ad1cb86f15ec3fe7d9ff16bfc0016b830f..662ec46d7b8828ad95501c6aafda8d9cf6795921 100644 (file)
 
  (our $sover_dirname = $config{shlib_version_number}) =~ s|\.|_|g;
 
+ my $build_scheme = $target{build_scheme};
+ my $install_flavour = $build_scheme->[$#$build_scheme]; # last element
  my $win_installenv =
-     $target{build_scheme}->[2] eq "VC-W32" ?
-     "ProgramFiles(x86)" : "ProgramW6432";
+     $install_flavour eq "VC-WOW" ? "ProgramFiles(x86)"
+                                  : "ProgramW6432";
  my $win_commonenv =
-     $target{build_scheme}->[2] eq "VC-W32"
-     ? "CommonProgramFiles(x86)" : "CommonProgramW6432";
+     $install_flavour eq "VC-WOW" ? "CommonProgramFiles(x86)"
+                                  : "CommonProgramW6432";
  our $win_installroot =
-     defined($ENV{$win_installenv})
-     ? $win_installenv : 'ProgramFiles';
+     defined($ENV{$win_installenv}) ? $win_installenv : 'ProgramFiles';
  our $win_commonroot =
-     defined($ENV{$win_commonenv})
-     ? $win_commonenv : 'CommonProgramFiles';
+     defined($ENV{$win_commonenv}) ? $win_commonenv : 'CommonProgramFiles';
 
  # expand variables early
  $win_installroot = $ENV{$win_installroot};