openssl/util/local_shlib.com.in
Richard Levitte c162a8c344 Rework building: VMS changes to handle extensions and product names
Add platform::VMS, which is a generic VMS module.  Additional modules
to support specific building aspects (such as specific compilers) may
be added later, but since we currently work on file names and those
are generic enough, this is also enough.

This reworks Configurations/descrip.mms.tmpl to work out product names
in platform::VMS terms.  Something to be noted is that the new
functionality ignores the *_extension config attributes, as they were
never used.  VMS is very consistent in its use of extensions, so there
is no reason to believe much will change in this respect.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/7473)
2019-01-21 19:31:32 +01:00

28 lines
987 B
Plaintext

${-
our %names = ( map { platform->sharedname($_) =>
$bldtop.platform->sharedlib($_) }
@{$unified_info{install}->{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: