-GENERATED_MANDATORY={- join(" ", @{$unified_info{depends}->{""}} ) -}
-GENERATED={- join(" ",
- ( map { (my $x = $_) =~ s|\.[sS]$|\.asm|; $x }
- grep { defined $unified_info{generate}->{$_} }
- map { @{$unified_info{sources}->{$_}} }
- grep { /\.o$/ } keys %{$unified_info{sources}} ),
- ( grep { /\.h$/ } keys %{$unified_info{generate}} )) -}
-
-INSTALL_LIBS={- join(" ", map { lib($_) } @{$unified_info{install}->{libraries}}) -}
-INSTALL_SHLIBS={- join(" ", map { shlib($_) } @{$unified_info{install}->{libraries}}) -}
-INSTALL_SHLIBPDBS={- join(" ", map { local $shlibext = ".pdb"; shlib($_) } @{$unified_info{install}->{libraries}}) -}
-INSTALL_ENGINES={- join(" ", map { dso($_) } @{$unified_info{install}->{engines}}) -}
-INSTALL_ENGINEPDBS={- join(" ", map { local $dsoext = ".pdb"; dso($_) } @{$unified_info{install}->{engines}}) -}
-INSTALL_PROGRAMS={- join(" ", map { $_.$exeext } grep { !m|^test\\| } @{$unified_info{install}->{programs}}) -}
-INSTALL_PROGRAMPDBS={- join(" ", map { $_.".pdb" } grep { !m|^test\\| } @{$unified_info{install}->{programs}}) -}
-{- output_off() if $disabled{apps}; "" -}
-BIN_SCRIPTS=$(BLDDIR)\tools\c_rehash.pl
-MISC_SCRIPTS=$(BLDDIR)\apps\CA.pl $(BLDDIR)\apps\tsget.pl
-{- output_on() if $disabled{apps}; "" -}
-
-APPS_OPENSSL={- use File::Spec::Functions;
- catfile("apps","openssl") -}
+GENERATED_MANDATORY={- our @GENERATED_MANDATORY = @{$unified_info{depends}->{""}};
+ join(" ", @GENERATED_MANDATORY) -}
+GENERATED={- # common0.tmpl provides @generated
+ our @GENERATED = map { platform->convertext($_) } @generated;
+ join(" ", @GENERATED) -}
+
+INSTALL_LIBS={-
+ join(" ", map { quotify1(platform->sharedlib_import($_)
+ // platform->staticlib($_)) }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
+ @{$unified_info{libraries}})
+-}
+INSTALL_SHLIBS={-
+ join(" ", map { my $x = platform->sharedlib($_);
+ $x ? quotify_l($x) : () }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
+ @{$unified_info{libraries}})
+-}
+INSTALL_SHLIBPDBS={-
+ join(" ", map { my $x = platform->sharedlibpdb($_);
+ $x ? quotify_l($x) : () }
+ grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
+ @{$unified_info{libraries}})
+-}
+INSTALL_ENGINES={-
+ join(" ", map { quotify1(platform->dso($_)) }
+ grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
+ && $unified_info{attributes}->{modules}->{$_}->{engine} }
+ @{$unified_info{modules}})
+-}
+INSTALL_ENGINEPDBS={-
+ join(" ", map { quotify1(platform->dsopdb($_)) }
+ grep { !$unified_info{attributes}->{modules}->{$_}->{noinst}
+ && $unified_info{attributes}->{modules}->{$_}->{engine} }
+ @{$unified_info{modules}})
+-}
+INSTALL_PROGRAMS={-
+ join(" ", map { quotify1(platform->bin($_)) }
+ grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
+ @{$unified_info{programs}})
+-}
+INSTALL_PROGRAMPDBS={-
+ join(" ", map { quotify1(platform->binpdb($_)) }
+ grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
+ @{$unified_info{programs}})
+-}
+BIN_SCRIPTS={-
+ join(" ", map { quotify1($_) }
+ grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
+ && !$unified_info{attributes}->{scripts}->{$_}->{misc} }
+ @{$unified_info{scripts}})
+-}
+MISC_SCRIPTS={-
+ join(" ", map { quotify1($_) }
+ grep { !$unified_info{attributes}->{scripts}->{$_}->{noinst}
+ && $unified_info{attributes}->{scripts}->{$_}->{misc} }
+ @{$unified_info{scripts}})
+-}
+HTMLDOCS1={- our @HTMLDOCS1 = @{$unified_info{htmldocs}->{man1}};
+ join(" ", @HTMLDOCS1) -}
+HTMLDOCS3={- our @HTMLDOCS3 = @{$unified_info{htmldocs}->{man3}};
+ join(" ", @HTMLDOCS3) -}
+HTMLDOCS5={- our @HTMLDOCS5 = @{$unified_info{htmldocs}->{man5}};
+ join(" ", @HTMLDOCS5) -}
+HTMLDOCS7={- our @HTMLDOCS7 = @{$unified_info{htmldocs}->{man7}};
+ join(" ", @HTMLDOCS7) -}
+HTMLDOCS1_BLDDIRS={- my %dirs = map { dirname($_) => 1 } @HTMLDOCS1;
+ join(' ', sort keys %dirs) -}
+HTMLDOCS3_BLDDIRS={- my %dirs = map { dirname($_) => 1 } @HTMLDOCS3;
+ join(' ', sort keys %dirs) -}
+HTMLDOCS5_BLDDIRS={- my %dirs = map { dirname($_) => 1 } @HTMLDOCS5;
+ join(' ', sort keys %dirs) -}
+HTMLDOCS7_BLDDIRS={- my %dirs = map { dirname($_) => 1 } @HTMLDOCS7;
+ join(' ', sort keys %dirs) -}
+
+APPS_OPENSSL="{- use File::Spec::Functions;
+ catfile("apps","openssl") -}"