1ExtUtils::MM_VMS(3pm) Perl Programmers Reference Guide ExtUtils::MM_VMS(3pm)
2
3
4
6 ExtUtils::MM_VMS - methods to override UN*X behaviour in
7 ExtUtils::MakeMaker
8
10 Do not use this directly.
11 Instead, use ExtUtils::MM and it will figure out which MM_*
12 class to use for you.
13
15 See ExtUtils::MM_Unix for a documentation of the methods provided
16 there. This package overrides the implementation of these methods, not
17 the semantics.
18
19 Methods always loaded
20 wraplist
21 Converts a list into a string wrapped at approximately 80 columns.
22
23 Methods
24 Those methods which override default MM_Unix methods are marked
25 "(override)", while methods unique to MM_VMS are marked "(specific)".
26 For overridden methods, documentation is limited to an explanation of
27 why this method overrides the MM_Unix method; see the ExtUtils::MM_Unix
28 documentation for more details.
29
30 guess_name (override)
31 Try to determine name of extension being built. We begin with the
32 name of the current directory. Since VMS filenames are case-
33 insensitive, however, we look for a .pm file whose name matches
34 that of the current directory (presumably the 'main' .pm file for
35 this extension), and try to find a "package" statement from which
36 to obtain the Mixed::Case package name.
37
38 find_perl (override)
39 Use VMS file specification syntax and CLI commands to find and
40 invoke Perl images.
41
42 maybe_command (override)
43 Follows VMS naming conventions for executable files. If the name
44 passed in doesn't exactly match an executable file, appends .Exe
45 (or equivalent) to check for executable image, and .Com to check
46 for DCL procedure. If this fails, checks directories in DCL$PATH
47 and finally Sys$System: for an executable file having the name
48 specified, with or without the .Exe-equivalent suffix.
49
50 pasthru (override)
51 VMS has $(MMSQUALIFIERS) which is a listing of all the original
52 command line options. This is used in every invocation of make in
53 the VMS Makefile so PASTHRU should not be necessary. Using PASTHRU
54 tends to blow commands past the 256 character limit.
55
56 pm_to_blib (override)
57 VMS wants a dot in every file so we can't have one called
58 'pm_to_blib', it becomes 'pm_to_blib.' and MMS/K isn't smart enough
59 to know that when you have a target called 'pm_to_blib' it should
60 look for 'pm_to_blib.'.
61
62 So in VMS its pm_to_blib.ts.
63
64 perl_script (override)
65 If name passed in doesn't specify a readable file, appends .com or
66 .pl and tries again, since it's customary to have file types on all
67 files under VMS.
68
69 replace_manpage_separator
70 Use as separator a character which is legal in a VMS-syntax file
71 name.
72
73 init_DEST
74 (override) Because of the difficulty concatenating VMS filepaths we
75 must pre-expand the DEST* variables.
76
77 init_DIRFILESEP
78 No seperator between a directory path and a filename on VMS.
79
80 init_main (override)
81 init_others (override)
82 Provide VMS-specific forms of various utility commands, then hand
83 off to the default MM_Unix method.
84
85 DEV_NULL should probably be overriden with something.
86
87 Also changes EQUALIZE_TIMESTAMP to set revision date of target file
88 to one second later than source file, since MMK interprets
89 precisely equal revision dates for a source and target file as a
90 sign that the target needs to be updated.
91
92 init_platform (override)
93 Add PERL_VMS, MM_VMS_REVISION and MM_VMS_VERSION.
94
95 MM_VMS_REVISION is for backwards compatibility before MM_VMS had a
96 $VERSION.
97
98 platform_constants
99 init_VERSION (override)
100 Override the *DEFINE_VERSION macros with VMS semantics. Translate
101 the MAKEMAKER filepath to VMS style.
102
103 constants (override)
104 Fixes up numerous file and directory macros to insure VMS syntax
105 regardless of input syntax. Also makes lists of files comma-
106 separated.
107
108 special_targets
109 Clear the default .SUFFIXES and put in our own list.
110
111 cflags (override)
112 Bypass shell script and produce qualifiers for CC directly (but
113 warn user if a shell script for this extension exists). Fold
114 multiple /Defines into one, since some C compilers pay attention to
115 only one instance of this qualifier on the command line.
116
117 const_cccmd (override)
118 Adds directives to point C preprocessor to the right place when
119 handling #include <sys/foo.h> directives. Also constructs CC
120 command line a bit differently than MM_Unix method.
121
122 tools_other (override)
123 Throw in some dubious extra macros for Makefile args.
124
125 Also keep around the old $(SAY) macro in case somebody's using it.
126
127 init_dist (override)
128 VMSish defaults for some values.
129
130 macro description default
131
132 ZIPFLAGS flags to pass to ZIP -Vu
133
134 COMPRESS compression command to gzip
135 use for tarfiles
136 SUFFIX suffix to put on -gz
137 compressed files
138
139 SHAR shar command to use vms_share
140
141 DIST_DEFAULT default target to use to tardist
142 create a distribution
143
144 DISTVNAME Use VERSION_SYM instead of $(DISTNAME)-$(VERSION_SYM)
145 VERSION for the name
146
147 c_o (override)
148 Use VMS syntax on command line. In particular, $(DEFINE) and
149 $(PERL_INC) have been pulled into $(CCCMD). Also use MM[SK]
150 macros.
151
152 xs_c (override)
153 Use MM[SK] macros.
154
155 xs_o (override)
156 Use MM[SK] macros, and VMS command line for C compiler.
157
158 dlsyms (override)
159 Create VMS linker options files specifying universal symbols for
160 this extension's shareable image, and listing other shareable
161 images or libraries to which it should be linked.
162
163 dynamic_lib (override)
164 Use VMS Link command.
165
166 static_lib (override)
167 Use VMS commands to manipulate object library.
168
169 extra_clean_files
170 Clean up some OS specific files. Plus the temp file used to
171 shorten a lot of commands.
172
173 zipfile_target
174 tarfile_target
175 shdist_target
176 Syntax for invoking shar, tar and zip differs from that for Unix.
177
178 install (override)
179 Work around DCL's 255 character limit several times,and use VMS-
180 style command line quoting in a few cases.
181
182 perldepend (override)
183 Use VMS-style syntax for files; it's cheaper to just do it directly
184 here than to have the MM_Unix method call "catfile" repeatedly.
185 Also, if we have to rebuild Config.pm, use MM[SK] to do it.
186
187 makeaperl (override)
188 Undertake to build a new set of Perl images using VMS commands.
189 Since VMS does dynamic loading, it's not necessary to statically
190 link each extension into the Perl image, so this isn't the normal
191 build path. Consequently, it hasn't really been tested, and may
192 well be incomplete.
193
194 maketext_filter (override)
195 Insure that colons marking targets are preceded by space, in order
196 to distinguish the target delimiter from a colon appearing as part
197 of a filespec.
198
199 prefixify (override)
200 prefixifying on VMS is simple. Each should simply be:
201
202 perl_root:[some.dir]
203
204 which can just be converted to:
205
206 volume:[your.prefix.some.dir]
207
208 otherwise you get the default layout.
209
210 In effect, your search prefix is ignored and $Config{vms_prefix} is
211 used instead.
212
213 cd
214 oneliner
215 echo
216 perl trips up on "<foo>" thinking it's an input redirect. So we
217 use the native Write command instead. Besides, its faster.
218
219 quote_literal
220 escape_newlines
221 max_exec_len
222 256 characters.
223
224 init_linker
225 catdir (override)
226 catfile (override)
227 Eliminate the macros in the output to the MMS/MMK file.
228
229 (File::Spec::VMS used to do this for us, but it's being removed)
230
231 eliminate_macros
232 Expands MM[KS]/Make macros in a text string, using the contents of
233 identically named elements of %$self, and returns the result as a
234 file specification in Unix syntax.
235
236 NOTE: This is the canonical version of the method. The version in
237 File::Spec::VMS is deprecated.
238
239 fixpath
240 my $path = $mm->fixpath($path);
241 my $path = $mm->fixpath($path, $is_dir);
242
243 Catchall routine to clean up problem MM[SK]/Make macros. Expands
244 macros in any directory specification, in order to avoid
245 juxtaposing two VMS-syntax directories when MM[SK] is run. Also
246 expands expressions which are all macro, so that we can tell how
247 long the expansion is, and avoid overrunning DCL's command buffer
248 when MM[KS] is running.
249
250 fixpath() checks to see whether the result matches the name of a
251 directory in the current default directory and returns a directory
252 or file specification accordingly. $is_dir can be set to true to
253 force fixpath() to consider the path to be a directory or false to
254 force it to be a file.
255
256 NOTE: This is the canonical version of the method. The version in
257 File::Spec::VMS is deprecated.
258
259 os_flavor
260 VMS is VMS.
261
263 Original author Charles Bailey bailey@newman.upenn.edu
264
265 Maintained by Michael G Schwern schwern@pobox.com
266
267 See ExtUtils::MakeMaker for patching and contact information.
268
269
270
271perl v5.12.4 2011-06-07 ExtUtils::MM_VMS(3pm)