xref: /freebsd/crypto/openssl/util/local_shlib.com.in (revision e0c4386e7e71d93b0edc0c8fa156263fc4a8b0b6)
1*e0c4386eSCy Schubert${-
2*e0c4386eSCy Schubert  use File::Spec::Functions qw(rel2abs);
3*e0c4386eSCy Schubert
4*e0c4386eSCy Schubert  my $bldtop = rel2abs($config{builddir});
5*e0c4386eSCy Schubert  our %names = ( map { platform->sharedname($_) =>
6*e0c4386eSCy Schubert                           $bldtop.platform->sharedlib($_) }
7*e0c4386eSCy Schubert                 grep { !$unified_info{attributes}->{libraries}->{$_}->{noinst} }
8*e0c4386eSCy Schubert                 @{$unified_info{libraries}} );
9*e0c4386eSCy Schubert  "" -}
10*e0c4386eSCy Schubert$       ! Create a local environment with the shared library logical names
11*e0c4386eSCy Schubert$       ! properly set.  Undo this with unlocal_shlib.com
12*e0c4386eSCy Schubert$
13*e0c4386eSCy Schubert$       OPENSSL_NAMES := OPENSSL_NAMES_'F$GETJPI("","PID")'
14*e0c4386eSCy Schubert$       CREATE/NAME_TABLE/PARENT_TABLE=LNM$PROCESS_DIRECTORY 'OPENSSL_NAMES'
15*e0c4386eSCy Schubert$       DEFINE/TABLE='OPENSSL_NAMES' OSSL_FLAG YES
16*e0c4386eSCy Schubert$
17*e0c4386eSCy Schubert$       NAMES := {- join(",", keys %names); -}
18*e0c4386eSCy Schubert{-
19*e0c4386eSCy Schubert  join("\n", map { "\$       __$_ = \"".$names{$_}."\"" } sort keys %names);
20*e0c4386eSCy Schubert-}
21*e0c4386eSCy Schubert$       I = 0
22*e0c4386eSCy Schubert$       LOOP:
23*e0c4386eSCy Schubert$           E = F$ELEMENT(I,",",NAMES)
24*e0c4386eSCy Schubert$           I = I + 1
25*e0c4386eSCy Schubert$           IF E .EQS. "," THEN GOTO ENDLOOP
26*e0c4386eSCy Schubert$           EV = __'E'
27*e0c4386eSCy Schubert$           OLDV = F$TRNLNM(E,"LNM$PROCESS")
28*e0c4386eSCy Schubert$           IF OLDV .NES. "" THEN DEFINE/TABLE='OPENSSL_NAMES' 'E' 'OLDV'
29*e0c4386eSCy Schubert$           DEFINE 'E' 'EV'
30*e0c4386eSCy Schubert$           GOTO LOOP
31*e0c4386eSCy Schubert$       ENDLOOP:
32