]>
Commit | Line | Data |
---|---|---|
c162a8c3 RL |
1 | package platform::VMS; |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | use Carp; | |
6 | ||
7 | use vars qw(@ISA); | |
8 | ||
9 | require platform::BASE; | |
10 | @ISA = qw(platform::BASE); | |
11 | ||
12 | # Assume someone set @INC right before loading this module | |
13 | use configdata; | |
14 | ||
15 | # VMS has a cultural standard where all installed libraries are prefixed. | |
16 | # For OpenSSL, the choice is 'ossl$' (this prefix was claimed in a | |
17 | # conversation with VSI, Tuesday January 26 2016) | |
18 | sub osslprefix { 'OSSL$' } | |
19 | ||
20 | sub binext { '.EXE' } | |
21 | sub dsoext { '.EXE' } | |
22 | sub shlibext { '.EXE' } | |
23 | sub libext { '.OLB' } | |
24 | sub defext { '.OPT' } | |
25 | sub objext { '.OBJ' } | |
26 | sub depext { '.D' } | |
27 | sub asmext { '.ASM' } | |
28 | ||
29 | # Other extra that aren't defined in platform::BASE | |
30 | sub shlibvariant { $target{shlib_variant} || '' } | |
31 | ||
32 | sub optext { '.OPT' } | |
33 | sub optname { return $_[1] } | |
34 | sub opt { return $_[0]->optname($_[1]) . $_[0]->optext() } | |
35 | ||
36 | # Other projects include the pointer size in the name of installed libraries, | |
37 | # so we do too. | |
38 | sub staticname { | |
39 | # Non-installed libraries are *always* static, and their names remain | |
40 | # the same, except for the mandatory extension | |
41 | my $in_libname = platform::BASE->staticname($_[1]); | |
5cae2d34 | 42 | return $in_libname if $unified_info{attributes}->{$_[1]}->{noinst}; |
c162a8c3 RL |
43 | |
44 | return platform::BASE::__concat($_[0]->osslprefix(), | |
45 | platform::BASE->staticname($_[1]), | |
46 | $target{pointer_size}); | |
47 | } | |
48 | ||
49 | # To enable installation of multiple major OpenSSL releases, we include the | |
50 | # version number in installed shared library names. | |
51 | my $sover_filename = | |
52 | join('', map { sprintf "%02d", $_ } split(m|\.|, $config{shlib_version})); | |
53 | sub shlib_version_as_filename { | |
54 | return $sover_filename; | |
55 | } | |
56 | sub sharedname { | |
57 | return platform::BASE::__concat($_[0]->osslprefix(), | |
58 | platform::BASE->sharedname($_[1]), | |
59 | $_[0]->shlib_version_as_filename(), | |
60 | ($_[0]->shlibvariant() // ''), | |
61 | "_shr$target{pointer_size}"); | |
62 | } | |
63 | ||
64 | 1; |