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