${-
  use File::Spec::Functions qw(rel2abs);

  my $bldtop = rel2abs($config{builddir});
  our %names = ( map { platform->sharedname($_) =>
                           $bldtop.platform->sharedlib($_) }
                 grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
                 @{$unified_info{libraries}} );
  "" -}
$       ! Create a local environment with the shared library logical names
$       ! properly set.  Undo this with unlocal_shlib.com
$
$       OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")'
$       CREATE/NAME_TABLE/PARENT_TABLE=LNM$PROCESS_DIRECTORY 'OPENSSL_NAMES'
$       DEFINE/TABLE='OPENSSL_NAMES' OSSL_FLAG YES
$
$       NAMES := {- join(",", keys %names); -}
{-
  join("\n", map { "\$       __$_ = \"".$names{$_}."\"" } sort keys %names);
-}      
$       I = 0
$       LOOP:
$           E = F$ELEMENT(I,",",NAMES)
$           I = I + 1
$           IF E .EQS. "," THEN GOTO ENDLOOP
$           EV = __'E'
$           OLDV = F$TRNLNM(E,"LNM$PROCESS")
$           IF OLDV .NES. "" THEN DEFINE/TABLE='OPENSSL_NAMES' 'E' 'OLDV'
$           DEFINE 'E' 'EV'
$           GOTO LOOP
$       ENDLOOP:
