Fix file-descriptor leak when pipes fail via taint checks:
[p5sagit/p5-mst-13.2.git] / vms / descrip.mms
CommitLineData
a0d0e21e 1# Descrip.MMS for perl5 on VMS
fc1ce8cc 2# Last revised 23-Dec-1997 by Charles Bailey bailey@genetics.upenn.edu
a0d0e21e 3#
4#: This file uses MMS syntax, and can be processed using DEC's MMS product,
5#: or the free MMK clone (available by ftp at ftp.spc.edu). If you want to
6#: a Unix-style MAKE tool, run this file through mms2make.pl, which should
7#: be found in the same directory as this file. (There should be a pre-made
8#: copy of Makefile for VAXC in this directory to allow you to build perl.)
9#:
10#: Lines beginning with "#:" will be removed by mms2make.pl when converting
11#: this file to MAKE syntax.
12#:
13#: Usage:
14#: Building with VAX C, on system without DEC C installed or with VAX C default:
15#: $ MMS
16#: Building with VAX C, on system with DEC C installed as default C compiler:
17#: $ MMS /MACRO=("cc=CC/VAXC")
18#: Building with DEC C, on system without VAX C installed or with DEC C default:
19#: $ MMS /MACRO=("decc=1")
20#: Building with DEC C, on system with VAX C installed as default C compiler:
21#: $ MMS /MACRO=("decc=1","cc=CC/DECC")
c07a80fd 22#: Building with GNU C
a0d0e21e 23#: $ MMS /MACRO=("gnuc=1")
a0d0e21e 24#: To each of the above, add /Macro="__AXP__=1" if building on an AXP,
25#: /Macro="__DEBUG__=1" to build a debug version
26#: (i.e. VMS debugger, not perl -D), and
5f3a9ec6 27#: /Macro="SOCKETSHR_SOCKETS=1" to include
28#: SOCKETSHR socket support.
29#: /Macro="DECC_SOCKETS=1" to include UCX (or
30#: compatible) socket support
5b411029 31#: /Macro="OLDTHREADED=1" to compile with the old
32#: pthreads API (VMS version 6.2 and previous)
33#: /Macro="THREADED=1" to compile with full POSIX
34#: threads. (VMS 7.0 and above)
35#: /Macro="FAKETHREADED=1" to compile with the
36#: fake threads package
a0d0e21e 37#
38# tidy -- purge files generated by executing this file
c07a80fd 39# clean -- remove all intermediate (e.g. object files, C files generated
40# during build) files generated by executing this file,
41# but leave `installable' files (images, library) intact
42# realclean -- remove all files generated by executing this file
43# cleansrc -- `realclean' + purge *.c,*.h,descrip.mms
a0d0e21e 44# crtl.opt -- compiler-specific linker options file (made automatically)
45#
46
47#### Start of system configuration section. ####
48
748a9306 49
50#: >>>>> Architecture-specific options <<<<<
a0d0e21e 51.ifdef AXE
52# File type to use for object files
53O = .abj
748a9306 54# File type to use for object libraries
55OLB = .alb
a0d0e21e 56# File type to use for executable images
57E = .axe
58.else
59# File type to use for object files
60O = .obj
748a9306 61# File type to use for object libraries
62OLB = .olb
a0d0e21e 63# File type to use for executable images
64E = .exe
65.endif
66
a0d0e21e 67.ifdef __AXP__
a0d0e21e 68DECC = 1
4633a7c4 69ARCH = VMS_AXP
c07a80fd 70OBJVAL = $(O)
a0d0e21e 71.else
4633a7c4 72ARCH = VMS_VAX
c07a80fd 73OBJVAL = $(MMS$TARGET_NAME)$(O)
a0d0e21e 74.endif
d896966d 75
d896966d 76# Updated by fndvers.com -- do not edit by hand
fc1ce8cc 77PERL_VERSION = 5_00456#
d896966d 78
5f3a9ec6 79.ifdef DECC_SOCKETS
80SOCKET=1
81.endif
82
83.ifdef SOCKETSHR_SOCKETS
84SOCKET=1
85.endif
86
87# If they defined SOCKET but didn't choose a stack, default to SOCKETSHR
88.ifdef DECC_SOCKETS
89.else
90.ifdef SOCKETSHR_SOCKETS
91.else
92.ifdef SOCKET
93SOCKETSHR_SOCKETS=1
94.endif
95.endif
96.endif
97
d896966d 98
99ARCHDIR = [.lib.$(ARCH).$(PERL_VERSION)]
100ARCHCORE = [.lib.$(ARCH).$(PERL_VERSION).CORE]
101ARCHAUTO = [.lib.$(ARCH).$(PERL_VERSION).auto]
a0d0e21e 102
748a9306 103
482b294c 104#: Backwards compatibility
105.ifdef DECC_PIPES_BROKEN
106PIPES_BROKEN = 1
107.endif
108
5f3a9ec6 109.ifdef __DEBUG__
110NOX2P = 1
111.endif
482b294c 112
748a9306 113#: >>>>>Compiler-specific options <<<<<
a0d0e21e 114.ifdef GNUC
115.first
17f14336 116 @ @[.vms]fndvers.com "" "" "[.vms]descrip.mms"
a0d0e21e 117 @ If F$TrnLnm("Sys").eqs."" Then Define/NoLog SYS GNU_CC_Include:[VMS]
118CC = gcc
2ae324a7 119PIPES_BROKEN = 1
748a9306 120# -fno-builtin avoids bug in gcc up to version 2.6.2 which can destroy
121# data when memcpy() is called on large (>64 kB) blocks of memory
122# (fixed in gcc 2.6.3)
2ae324a7 123XTRACCFLAGS = /Obj=$(MMS$TARGET_NAME)$(O)/NoCase_Hack/Optimize=2
a0d0e21e 124DBGSPECFLAGS =
125XTRADEF = ,GNUC_ATTRIBUTE_CHECK
126XTRAOBJS =
127LIBS1 = GNU_CC:[000000]GCCLIB.OLB/Library
c07a80fd 128LIBS2 = Sys$Share:VAXCRTL/Shareable
55497cff 129POSIX =
a0d0e21e 130.else
a0d0e21e 131XTRAOBJS =
132LIBS1 = $(XTRAOBJS)
61bb5906 133DBGSPECFLAGS = /Show=All
a0d0e21e 134.ifdef decc
4633a7c4 135# Some versions of DECCRTL on AXP have a bug in chdir() which causes the change
136# to persist after the image exits, even when this was not requested, iff
137# SYSNAM is enabled. This is fixed in CSC Patch # AXPACRT04_061, but turning
138# off SYSNAM for the MM[SK] subprocess doesn't hurt anything, so we do it
139# just in case.
140.first
141 @ Set Process/Privilege=(NoSYSNAM)
17f14336 142 @ @[.vms]fndvers.com "" "" "[.vms]descrip.mms"
d896966d 143 @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").nes."" Then Define/NoLog SYS DECC$System_Include
144.ifdef __AXP__
145 @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").eqs."" Then Define/NoLog SYS Sys$Library
146.else
147 @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("DECC$System_Include").eqs."" Then Define/NoLog SYS DECC$Library_Include
148.endif
149
a0d0e21e 150LIBS2 =
c07a80fd 151XTRACCFLAGS = /Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=$(OBJVAL)
a0d0e21e 152XTRADEF =
55497cff 153POSIX = POSIX
a0d0e21e 154.else # VAXC
e518068a 155.first
17f14336 156 @ @[.vms]fndvers.com "" "" "[.vms]descrip.mms"
482b294c 157 @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").eqs."" Then Define/NoLog SYS Sys$Library
158 @ If F$TrnLnm("Sys").eqs."" .and. F$TrnLnm("VAXC$Include").nes."" Then Define/NoLog SYS VAXC$Include
159
a0d0e21e 160XTRACCFLAGS = /Include=[]/Object=$(O)
161XTRADEF =
c07a80fd 162LIBS2 = Sys$Share:VAXCRTL/Shareable
55497cff 163POSIX =
a0d0e21e 164.endif
165.endif
166
748a9306 167
168#: >>>>> Configuration options <<<<<
169#: __DEBUG__: builds images with full VMS debugger support
a0d0e21e 170.ifdef __DEBUG__
171DBGCCFLAGS = /List/Debug/NoOpt$(DBGSPECFLAGS)
e518068a 172DBGLINKFLAGS = /Trace/Debug/Map/Full/Cross
a0d0e21e 173DBG = DBG
174.else
175DBGCCFLAGS = /NoList
84902520 176DBGLINKFLAGS = /NoTrace/NoMap
a0d0e21e 177DBG =
178.endif
179
748a9306 180#: SOCKET: build in support for TCP/IP sockets
181#: By default, used SOCKETSHR library; see ReadMe.VMS
182#: for information on changing socket support
a0d0e21e 183.ifdef SOCKET
5f3a9ec6 184.ifdef DECC_SOCKETS
185SOCKDEF = ,VMS_DO_SOCKETS,DECCRTL_SOCKETS
186SOCKLIB =
187.else
a0d0e21e 188SOCKDEF = ,VMS_DO_SOCKETS
189SOCKLIB = SocketShr/Share
5f3a9ec6 190.endif
a0d0e21e 191# N.B. the targets for $(SOCKC) and $(SOCKH) assume that the permanent
192# copies live in [.vms], and the `clean' target will delete copies of
193# these files in the current default directory.
194SOCKC = sockadapt.c
195SOCKH = sockadapt.h
196SOCKCLIS = ,$(SOCKC)
197SOCKHLIS = ,$(SOCKH)
198SOCKOBJ = ,sockadapt$(O)
4633a7c4 199SOCKPM = [.lib]Socket.pm
a0d0e21e 200.else
201SOCKDEF =
202SOCKLIB =
203SOCKC =
204SOCKH =
205SOCKCLIS =
206SOCKHLIS =
207SOCKOBJ =
4633a7c4 208SOCKPM =
a0d0e21e 209.endif
210
5b411029 211THREAD =
212
213.ifdef THREADED
214THREADDEF = ,USE_THREADS,MULTIPLICITY
5b411029 215THREAD = THREAD
216.endif
217
218.ifdef OLDTHREADED
219THREADDEF = ,USE_THREADS,MULTIPLICITY,OLD_PTHREADS_API
5b411029 220THREAD = THREAD
221LIBS2 = sys$share:cma$lib_shr/share,cma$rtl/share
222.ifdef __AXP__
223LIBS2 = $(LIBS2),sys$share:cma$open_lib_shr/share,cma$open_rtl/share
224.endif
225.endif
226
227.ifdef FAKETHREADED
228THREADDEF = ,USE_THREADS,MULTIPLICITY,FAKE_THREADS
fc1ce8cc 229THREADH = fakethr.h
230acth = $(ARCHCORE)fakethr.h
5b411029 231THREAD = THREAD
fc1ce8cc 232.else
233THREADH =
234acth =
5b411029 235.endif
236
748a9306 237# C preprocessor manifest "DEBUGGING" ==> perl -D, not the VMS debugger
5b411029 238CFLAGS = /Define=(DEBUGGING$(SOCKDEF)$(XTRADEF)$(THREADDEF))$(XTRACCFLAGS)$(DBGCCFLAGS)
a0d0e21e 239LINKFLAGS = $(DBGLINKFLAGS)
240
e518068a 241MAKE = $(MMS)
a0d0e21e 242MAKEFILE = [.VMS]Descrip.MMS # this file
243NOOP = continue
244
748a9306 245# Macros to invoke a copy of miniperl during the build. Targets which
246# are built using these macros should depend on $(MINIPERL_EXE)
247MINIPERL_EXE = Sys$Disk:[]miniperl$(E)
e518068a 248MINIPERL = MCR $(MINIPERL_EXE) "-I[.lib]"
d896966d 249XSUBPP = $(MINIPERL) [.lib.extutils]xsubpp -noprototypes
4633a7c4 250# Macro to invoke a preexisting copy of Perl. This is used to regenerate
251# some header files when rebuilding Perl, but premade versions are provided
252# in the distribution, so it's OK if this doesn't work; it's here to make
253# life easier for those who modify Perl and rebuild it.
254INSTPERL = perl
748a9306 255
256# Space-separated list of "static" extensions to build into perlshr (case counts).
4633a7c4 257MYEXT = DynaLoader
748a9306 258# object files for these extensions; the trailing comma is required if
259# there are any object files specified
a0d0e21e 260# These must be built separately, or you must add rules below to build them
4633a7c4 261myextobj = [.ext.dynaloader]dl_vms$(O),
262#: We include the Socket extension by default if we're building with socket
263#: support, since it's small and not really worth bothering to keep track
264#: of separately.
265.ifdef SOCKET
266EXT = $(MYEXT) Socket
267extobj = $(myextobj) [.ext.socket]socket$(O),
268.else
269EXT = $(MYEXT)
270extobj = $(myextobj)
271.endif
272
a0d0e21e 273
274#### End of system configuration section. ####
275
276
277h1 = EXTERN.h, INTERN.h, XSUB.h, av.h, config.h, cop.h, cv.h
fc1ce8cc 278h2 = embed.h, form.h, gv.h, handy.h, hv.h, keywords.h, mg.h, op.h, thread.h
a0d0e21e 279h3 = opcode.h, patchlevel.h, perl.h, perly.h, pp.h, proto.h, regcomp.h
740ce14c 280h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlio.h, perlsdio.h
fc1ce8cc 281h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h
282h = $(h1), $(h2), $(h3), $(h4), $(h5) $(SOCKHLIS) $(THREADH)
a0d0e21e 283
740ce14c 284c1 = av.c, scope.c, op.c, doop.c, doio.c, dump.c, hv.c, mg.c, universal.c, perlio.c
748a9306 285c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c
286c3 = gv.c, sv.c, taint.c, toke.c, util.c, deb.c, run.c, globals.c, vms.c $(SOCKCLIS)
a0d0e21e 287
748a9306 288c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c
a0d0e21e 289
740ce14c 290obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), util$(O), mg$(O), perlio$(O)
748a9306 291obj2 = hv$(O), av$(O), run$(O), pp_hot$(O), sv$(O), pp$(O), scope$(O), pp_ctl$(O), pp_sys$(O)
17f14336 292obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O) $(SOCKOBJ)
a0d0e21e 293
294obj = $(obj1), $(obj2), $(obj3)
295
748a9306 296ac1 = $(ARCHCORE)EXTERN.h $(ARCHCORE)INTERN.h $(ARCHCORE)XSUB.h $(ARCHCORE)av.h
297ac2 = $(ARCHCORE)config.h $(ARCHCORE)cop.h $(ARCHCORE)cv.h $(ARCHCORE)embed.h
298ac3 = $(ARCHCORE)form.h $(ARCHCORE)gv.h $(ARCHCORE)handy.h $(ARCHCORE)hv.h
299ac4 = $(ARCHCORE)keywords.h $(ARCHCORE)mg.h $(ARCHCORE)op.h $(ARCHCORE)opcode.h
fc1ce8cc 300ac5 = $(ARCHCORE)patchlevel.h $(ARCHCORE)perl.h $(ARCHCORE)perly.h $(ARCHCORE)thread.h
740ce14c 301ac6 = $(ARCHCORE)pp.h $(ARCHCORE)proto.h $(ARCHCORE)regcomp.h $(ARCHCORE)perlio.h $(ARCHCORE)perlsdio.h
748a9306 302ac7 = $(ARCHCORE)regexp.h $(ARCHCORE)scope.h $(ARCHCORE)sv.h $(ARCHCORE)util.h
fc1ce8cc 303ac8 = $(ARCHCORE)embedvar.h $(ARCHCORE)intrpvar.h $(ARCHCORE)perlvars.h $(ARCHCORE)thrdvar.h
304ac9 = $(ARCHCORE)vmsish.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt
305ac10 = $(ARCHCORE)$(DBG)perlshr_bld.opt
748a9306 306.ifdef SOCKET
307acs = $(ARCHCORE)$(SOCKH)
308.else
309acs =
310.endif
311
a0d0e21e 312CRTL = []crtl.opt
313CRTLOPTS =,$(CRTL)/Options
314
315.SUFFIXES
a5f75d66 316
317.ifdef LINK_ONLY
318.else
748a9306 319.SUFFIXES $(O) .c .xs
320
321.xs.c :
322 $(XSUBPP) $(MMS$SOURCE) >$(MMS$TARGET)
323
a0d0e21e 324
325.c$(O) :
326 $(CC) $(CFLAGS) $(MMS$SOURCE)
327
748a9306 328.xs$(O) :
329 $(XSUBPP) $(MMS$SOURCE) >$(MMS$SOURCE_NAME).c
330 $(CC) $(CFLAGS) $(MMS$SOURCE_NAME).c
a5f75d66 331.endif
332
ff0cee69 333# Modules which must be installed before we can build extensions
334LIBPREREQ = $(ARCHDIR)Config.pm [.lib]DynaLoader.pm [.lib]vmsish.pm [.lib.VMS]Filespec.pm [.lib.ExtUtils]XSSymSet.pm
335
774d564b 336utils1 = [.lib.pod]perldoc.com [.lib.ExtUtils]Miniperl.pm [.utils]c2ph.com [.utils]h2ph.com [.utils]h2xs.com [.lib]perlbug.com
337utils2 = [.lib]splain.com [.utils]pl2pm.com
748a9306 338
5f3a9ec6 339.ifdef NOX2P
340all : base extras archcorefiles preplibrary perlpods
341 @ $(NOOP)
342.else
774d564b 343all : base extras x2p archcorefiles preplibrary perlpods
a0d0e21e 344 @ $(NOOP)
5f3a9ec6 345.endif
d896966d 346base : miniperl perl
a0d0e21e 347 @ $(NOOP)
5b411029 348extras : Fcntl IO Opcode attrs $(POSIX) $(THREAD) libmods utils podxform
c07a80fd 349 @ $(NOOP)
ff0cee69 350libmods : $(LIBPREREQ)
c07a80fd 351 @ $(NOOP)
774d564b 352utils : $(utils1) $(utils2)
c07a80fd 353 @ $(NOOP)
774d564b 354podxform : [.lib.pod]pod2text.com [.lib.pod]pod2html.com [.lib.pod]pod2latex.com [.lib.pod]pod2man.com
355 @ $(NOOP)
356x2p : [.x2p]a2p$(E) [.x2p]s2p.com [.x2p]find2perl.com
748a9306 357 @ $(NOOP)
c07a80fd 358
71be2cbc 359pod1 = [.lib.pod]perl.pod [.lib.pod]perlapio.pod [.lib.pod]perlbook.pod [.lib.pod]perlbot.pod [.lib.pod]perlcall.pod
ff0cee69 360pod2 = [.lib.pod]perldata.pod [.lib.pod]perldebug.pod [.lib.pod]perldelta.pod [.lib.pod]perldiag.pod [.lib.pod]perldsc.pod
c07a80fd 361pod3 = [.lib.pod]perlembed.pod [.lib.pod]perlform.pod [.lib.pod]perlfunc.pod [.lib.pod]perlguts.pod
71be2cbc 362pod4 = [.lib.pod]perlipc.pod [.lib.pod]perllocale.pod [.lib.pod]perllol.pod [.lib.pod]perlmod.pod [.lib.pod]perlobj.pod
ff0cee69 363pod5 = [.lib.pod]perlop.pod [.lib.pod]perlpod.pod [.lib.pod]perlre.pod [.lib.pod]perlref.pod [.lib.pod]perlrun.pod
364pod6 = [.lib.pod]perlsec.pod [.lib.pod]perlstyle.pod [.lib.pod]perlsub.pod [.lib.pod]perlsyn.pod
365pod7 = [.lib.pod]perltie.pod [.lib.pod]perltoc.pod [.lib.pod]perltoot.pod
c07a80fd 366pod8 = [.lib.pod]perltrap.pod [.lib.pod]perlvar.pod [.lib.pod]perlxs.pod [.lib.pod]perlxstut.pod
367
368perlpods : $(pod1) $(pod2) $(pod3) $(pod4) $(pod5) $(pod6) $(pod7) $(pod8) [.lib.pod]perlvms.pod
369 @ $(NOOP)
370
fc1ce8cc 371archcorefiles : $(ac1) $(ac2) $(ac3) $(ac4) $(ac5) $(ac6) $(ac7) $(ac8) $(ac9) $(ac10) $(acs) $(acth) $(ARCHAUTO)time.stamp
a0d0e21e 372 @ $(NOOP)
373
d896966d 374miniperl : $(DBG)miniperl$(E)
375 @ Continue
748a9306 376$(MINIPERL_EXE) : miniperlmain$(O), $(DBG)libperl$(OLB) $(CRTL)
17f14336 377 Link $(LINKFLAGS)/NoDebug/NoMap/NoFull/NoCross/Exe=$(MMS$TARGET) miniperlmain$(O), $(DBG)libperl$(OLB)/Library/Include=globals $(CRTLOPTS)
61bb5906 378$(DBG)miniperl$(E) : miniperlmain$(O), $(DBG)libperl$(OLB) $(CRTL)
d896966d 379 Link $(LINKFLAGS)/Exe=$(MMS$TARGET) miniperlmain$(O),$(DBG)libperl$(OLB)/Library/Include=globals $(CRTLOPTS)
a0d0e21e 380
748a9306 381$(DBG)libperl$(OLB) : $(obj)
382 @ If F$Search("$(MMS$TARGET)").eqs."" Then Library/Object/Create $(MMS$TARGET)
383 Library/Object/Replace $(MMS$TARGET) $(obj1)
384 Library/Object/Replace $(MMS$TARGET) $(obj2)
385 Library/Object/Replace $(MMS$TARGET) $(obj3)
a0d0e21e 386
748a9306 387perlmain.c : miniperlmain.c $(MINIPERL_EXE) [.vms]writemain.pl
388 $(MINIPERL) [.VMS]Writemain.pl "$(EXT)"
a0d0e21e 389
d896966d 390perl : $(DBG)perl$(E)
391 @ Continue
a5f75d66 392$(DBG)perl$(E) : perlmain$(O), $(DBG)perlshr$(E), $(MINIPERL_EXE)
a0d0e21e 393 @ @[.vms]genopt "PerlShr.Opt/Write" "|" "''F$Environment("Default")'$(DBG)PerlShr$(E)/Share"
c07a80fd 394.ifdef gnuc
17f14336 395 Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option, crtl.opt/Option
396.else
d896966d 397 Link $(LINKFLAGS)/Exe=$(MMS$TARGET) perlmain$(O), perlshr.opt/Option, perlshr_attr.opt/Option
17f14336 398.endif
a5f75d66 399
400$(DBG)perlshr$(E) : $(DBG)libperl$(OLB) $(extobj) $(DBG)perlshr_xtras.ts
84902520 401 Link $(LINKFLAGS)/Share=$(MMS$TARGET) $(extobj) []$(DBG)perlshr_bld.opt/Option, perlshr_attr.opt/Option
a5f75d66 402
a0d0e21e 403# The following files are built in one go by gen_shrfls.pl:
748a9306 404# perlshr_attr.opt, $(DBG)perlshr_bld.opt - VAX and AXP
405# perlshr_gbl*.mar, perlshr_gbl*$(O) - VAX only
a5f75d66 406# The song and dance with gen_shrfls.opt accomodates DCL's 255 character
407# line length limit.
482b294c 408.ifdef PIPES_BROKEN
a0d0e21e 409# This is a backup target used only with older versions of the DECCRTL which
410# can't deal with pipes properly. See ReadMe.VMS for details.
748a9306 411$(DBG)perlshr_xtras.ts : perl.h config.h vmsish.h proto.h [.vms]gen_shrfls.pl $(MINIPERL_EXE) $(MAKEFILE) $(CRTL)
a0d0e21e 412 $(CC) $(CFLAGS)/NoObject/NoList/PreProcess=perl.i perl.h
a5f75d66 413 @ $(MINIPERL) -e "print join('|',@ARGV),'|';" "~~NOCC~~perl.i~~$(CC)$(CFLAGS)" >gen_shrfls.opt
414 @ $(MINIPERL) -e "print join('|',@ARGV);" "$(O)" "$(DBG)" "$(OLB)" "$(EXT)" "$(CRTL)" >>gen_shrfls.opt
415 $(MINIPERL) [.vms]gen_shrfls.pl -f gen_shrfls.opt
416 @ Delete/NoLog/NoConfirm perl.i;, gen_shrfls.opt;
748a9306 417 @ If F$Search("$(DBG)perlshr_xtras.ts").nes."" Then Delete/NoLog/NoConfirm $(DBG)perlshr_xtras.ts;*
d896966d 418 @ Copy _NLA0: $(DBG)perlshr_xtras.ts
a0d0e21e 419.else
748a9306 420$(DBG)perlshr_xtras.ts : perl.h config.h vmsish.h proto.h [.vms]gen_shrfls.pl $(MINIPERL_EXE) $(MAKEFILE) $(CRTL)
a5f75d66 421 @ $(MINIPERL) -e "print join('|',@ARGV),'|';" "$(CC)$(CFLAGS)" >gen_shrfls.opt
422 @ $(MINIPERL) -e "print join('|',@ARGV);" "$(O)" "$(DBG)" "$(OLB)" "$(EXT)" "$(CRTL)" >>gen_shrfls.opt
423 $(MINIPERL) [.vms]gen_shrfls.pl -f gen_shrfls.opt
424 @ Delete/NoLog/NoConfirm gen_shrfls.opt;
748a9306 425 @ If F$Search("$(DBG)perlshr_xtras.ts").nes."" Then Delete/NoLog/NoConfirm $(DBG)perlshr_xtras.ts;*
d896966d 426 @ Copy _NLA0: $(DBG)perlshr_xtras.ts
a0d0e21e 427.endif
428
d896966d 429$(ARCHDIR)config.pm : [.lib]config.pm
430 Create/Directory $(ARCHDIR)
4633a7c4 431 Copy $(MMS$SOURCE) $(MMS$TARGET)
432
a5f75d66 433# Once again, we accomodate DCL's 255 character buffer
748a9306 434[.lib]config.pm : [.vms]config.vms [.vms]genconfig.pl $(MINIPERL_EXE)
a5f75d66 435 @ $(MINIPERL) -e "print join('|',@ARGV),'|';" "cc=$(CC)$(CFLAGS)" >genconfig.opt
436 @ $(MINIPERL) -e "print join('|',@ARGV),'|';" "ldflags=$(LINKFLAGS)|obj_ext=$(O)|exe_ext=$(E)|lib_ext=$(OLB)" >>genconfig.opt
437 $(MINIPERL) [.VMS]GenConfig.Pl -f genconfig.opt
438 @ Delete/NoLog/NoConfirm genconfig.opt;
748a9306 439 $(MINIPERL) ConfigPM.
a0d0e21e 440
ff0cee69 441[.ext.dynaloader]dl_vms.c : [.ext.dynaloader]dl_vms.xs [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE)
a0d0e21e 442 $(XSUBPP) $(MMS$SOURCE) >$(MMS$TARGET)
443
444[.ext.dynaloader]dl_vms$(O) : [.ext.dynaloader]dl_vms.c
2ae324a7 445 $(CC) $(CFLAGS) /Include=([],[.ext.dynaloader])/Object=$(MMS$TARGET) $(MMS$SOURCE)
a0d0e21e 446
748a9306 447[.lib]DynaLoader.pm : [.ext.dynaloader]dynaloader.pm
a0d0e21e 448 Copy/Log/NoConfirm [.ext.dynaloader]dynaloader.pm [.lib]DynaLoader.pm
d896966d 449 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
c07a80fd 450 @ $(MINIPERL) -e "use AutoSplit; autosplit_lib_modules(@ARGV)" [.lib]DynaLoader.pm
451
17f14336 452Opcode : [.lib]Opcode.pm [.lib]ops.pm [.lib]Safe.pm [.lib.auto.Opcode]Opcode$(E)
c07a80fd 453 @ $(NOOP)
454
17f14336 455[.lib]Opcode.pm : [.ext.Opcode]Descrip.MMS
a5f75d66 456 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
17f14336 457 @ Set Default [.ext.Opcode]
c07a80fd 458 $(MMS)
459 @ Set Default [--]
460
17f14336 461[.lib]ops.pm : [.ext.Opcode]Descrip.MMS
462 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
463 @ Set Default [.ext.Opcode]
464 $(MMS)
465 @ Set Default [--]
466
467[.lib]Safe.pm : [.ext.Opcode]Descrip.MMS
468 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
469 @ Set Default [.ext.Opcode]
470 $(MMS)
471 @ Set Default [--]
472
473[.lib.auto.Opcode]Opcode$(E) : [.ext.Opcode]Descrip.MMS
474 @ Set Default [.ext.Opcode]
c07a80fd 475 $(MMS)
476 @ Set Default [--]
477
478# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
479# ${@} necessary to distract different versions of MM[SK]/make
ff0cee69 480[.ext.Opcode]Descrip.MMS : [.ext.Opcode]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
17f14336 481 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Opcode]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
748a9306 482
d896966d 483Fcntl : [.lib]Fcntl.pm [.lib.auto.Fcntl]Fcntl$(E)
a5f75d66 484 @ $(NOOP)
485
486[.lib]Fcntl.pm : [.ext.Fcntl]Descrip.MMS
487 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
488 @ Set Default [.ext.Fcntl]
489 $(MMS)
490 @ Set Default [--]
491
d896966d 492[.lib.auto.Fcntl]Fcntl$(E) : [.ext.Fcntl]Descrip.MMS
a5f75d66 493 @ Set Default [.ext.Fcntl]
494 $(MMS)
495 @ Set Default [--]
496
497# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
498# ${@} necessary to distract different versions of MM[SK]/make
ff0cee69 499[.ext.Fcntl]Descrip.MMS : [.ext.Fcntl]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
d896966d 500 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Fcntl]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
482b294c 501
5b411029 502attrs : [.lib]attrs.pm [.lib.auto.attrs]attrs$(E)
503 @ $(NOOP)
504
505[.lib]attrs.pm : [.ext.attrs]Descrip.MMS
506 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
507 @ Set Default [.ext.attrs]
508 $(MMS)
509 @ Set Default [--]
510
511[.lib.auto.attrs]attrs$(E) : [.ext.attrs]Descrip.MMS
512 @ Set Default [.ext.attrs]
513 $(MMS)
514 @ Set Default [--]
515
516# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
517# ${@} necessary to distract different versions of MM[SK]/make
518[.ext.attrs]Descrip.MMS : [.ext.Fcntl]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
519 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.attrs]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
520
55497cff 521POSIX : [.lib]POSIX.pm [.lib.auto.POSIX]POSIX$(E)
522 @ $(NOOP)
523
524[.lib]POSIX.pm : [.ext.POSIX]Descrip.MMS
525 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
526 @ Set Default [.ext.POSIX]
527 $(MMS)
528 @ Set Default [--]
529
530[.lib.auto.POSIX]POSIX$(E) : [.ext.POSIX]Descrip.MMS
531 @ Set Default [.ext.POSIX]
532 $(MMS)
533 @ Set Default [--]
534
535# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
536# ${@} necessary to distract different versions of MM[SK]/make
ff0cee69 537[.ext.POSIX]Descrip.MMS : [.ext.POSIX]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
55497cff 538 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.POSIX]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
539
5b411029 540THREAD : [.lib]THREAD.pm [.lib.auto.THREAD]THREAD$(E)
541 @ $(NOOP)
542
543[.lib]THREAD.pm : [.ext.THREAD]Descrip.MMS
544 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
545 @ Set Default [.ext.THREAD]
546 $(MMS)
547 @ Set Default [--]
548
549[.lib.auto.THREAD]THREAD$(E) : [.ext.THREAD]Descrip.MMS
550 @ Set Default [.ext.THREAD]
551 $(MMS)
552 @ Set Default [--]
553
554# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
555# ${@} necessary to distract different versions of MM[SK]/make
556[.ext.THREAD]Descrip.MMS : [.ext.THREAD]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
557 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.THREAD]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
558
17f14336 559IO : [.lib]IO.pm [.lib.IO]File.pm [.lib.IO]Handle.pm [.lib.IO]Pipe.pm [.lib.IO]Seekable.pm [.lib.IO]Socket.pm [.lib.auto.IO]IO$(E)
560 @ $(NOOP)
561
562[.lib]IO.pm : [.ext.IO]Descrip.MMS
563 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
564 @ Set Default [.ext.IO]
565 $(MMS)
566 @ Set Default [--]
567
568[.lib.IO]File.pm : [.ext.IO]Descrip.MMS
569 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
570 @ Set Default [.ext.IO]
571 $(MMS)
572 @ Set Default [--]
573
574[.lib.IO]Handle.pm : [.ext.IO]Descrip.MMS
575 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
576 @ Set Default [.ext.IO]
577 $(MMS)
578 @ Set Default [--]
579
580[.lib.IO]Pipe.pm : [.ext.IO]Descrip.MMS
581 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
582 @ Set Default [.ext.IO]
583 $(MMS)
584 @ Set Default [--]
585
586[.lib.IO]Seekable.pm : [.ext.IO]Descrip.MMS
587 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
588 @ Set Default [.ext.IO]
589 $(MMS)
590 @ Set Default [--]
591
592[.lib.IO]Socket.pm : [.ext.IO]Descrip.MMS
593 @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto]
594 @ Set Default [.ext.IO]
595 $(MMS)
596 @ Set Default [--]
597
598[.lib.auto.IO]IO$(E) : [.ext.IO]Descrip.MMS
599 @ Set Default [.ext.IO]
600 $(MMS)
601 @ Set Default [--]
602
603# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C<chdir>
604# ${@} necessary to distract different versions of MM[SK]/make
ff0cee69 605[.ext.IO]Descrip.MMS : [.ext.IO]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E)
17f14336 606 $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.IO]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]"
607
ff0cee69 608[.lib]vmsish.pm : [.vms.ext]vmsish.pm
609 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
610
748a9306 611[.lib.VMS]Filespec.pm : [.vms.ext]Filespec.pm
e518068a 612 @ If F$Search("[.lib]VMS.Dir").eqs."" Then Create/Directory [.lib.VMS]
748a9306 613 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
614
ff0cee69 615[.lib.ExtUtils]XSSymSet.pm : [.vms.ext]XSSymSet.pm
616 @ If F$Search("[.lib]VMS.Dir").eqs."" Then Create/Directory [.lib.VMS]
617 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
618
f86702cc 619[.lib.pod]perldoc.com : [.utils]perldoc.PL $(ARCHDIR)Config.pm
c07a80fd 620 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
621 $(MINIPERL) $(MMS$SOURCE)
774d564b 622 Copy/Log [.utils]perldoc.com $(MMS$TARGET)
c07a80fd 623
d896966d 624[.lib.ExtUtils]Miniperl.pm : Minimod.PL miniperlmain.c $(ARCHDIR)Config.pm
c07a80fd 625 $(MINIPERL) $(MMS$SOURCE) >$(MMS$TARGET)
748a9306 626
774d564b 627[.utils]c2ph.com : [.utils]c2ph.PL $(ARCHDIR)Config.pm
628 $(MINIPERL) $(MMS$SOURCE)
629
630[.utils]h2ph.com : [.utils]h2ph.PL $(ARCHDIR)Config.pm
631 $(MINIPERL) $(MMS$SOURCE)
632
633[.utils]h2xs.com : [.utils]h2xs.PL $(ARCHDIR)Config.pm
c07a80fd 634 $(MINIPERL) $(MMS$SOURCE)
635
774d564b 636[.lib]perlbug.com : [.utils]perlbug.PL $(ARCHDIR)Config.pm
c07a80fd 637 $(MINIPERL) $(MMS$SOURCE)
774d564b 638 Rename/Log [.utils]perlbug.com $(MMS$TARGET)
c07a80fd 639
774d564b 640[.utils]pl2pm.com : [.utils]pl2pm.PL $(ARCHDIR)Config.pm
c07a80fd 641 $(MINIPERL) $(MMS$SOURCE)
642
774d564b 643[.lib]splain.com : [.utils]splain.PL $(ARCHDIR)Config.pm
c07a80fd 644 $(MINIPERL) $(MMS$SOURCE)
774d564b 645 Rename/Log [.utils]splain.com $(MMS$TARGET)
c07a80fd 646
774d564b 647[.x2p]find2perl.com : [.x2p]find2perl.PL $(ARCHDIR)Config.pm
c07a80fd 648 $(MINIPERL) $(MMS$SOURCE)
649
774d564b 650[.x2p]s2p.com : [.x2p]s2p.PL $(ARCHDIR)Config.pm
71be2cbc 651 $(MINIPERL) $(MMS$SOURCE)
71be2cbc 652
f86702cc 653# Rename catches problem with some DECC versions in which object file is
654# placed in current default dir, not same one as source file.
774d564b 655[.x2p]$(DBG)a2p$(E) : [.x2p]a2p$(O), [.x2p]hash$(O), [.x2p]str$(O), [.x2p]util$(O), [.x2p]walk$(O)
aa689395 656 @ If F$Search("hash$(O)").nes."" Then Rename/NoLog hash$(O),str$(O),util$(O),walk$(O) [.x2p]
774d564b 657 Link $(LINKFLAGS) /Exe=$(MMS$TARGET) $(MMS$SOURCE_LIST) $(CRTLOPTS)
658
4fdae800 659# Accomodate buggy cpp in some version of DECC, which chokes on illegal
2ae324a7 660# filespec "y.tab.c", and broken gcc cpp, which doesn't start #include ""
661# search in same dir as source file
4fdae800 662[.x2p]a2p$(O) : [.x2p]a2p.c $(MINIPERL_EXE)
663 $(MINIPERL) -pe "s/^#line\s+(\d+)\s+\Q""y.tab.c""/#line $1 ""y_tab.c""/;" $(MMS$SOURCE) >$(MMS$TARGET_NAME)_vms.c
2ae324a7 664 $(CC) $(CFLAGS) /Object=$(MMS$TARGET)/Include=([.x2p],[]) $(MMS$TARGET_NAME)_vms.c
4fdae800 665 Delete/Log/NoConfirm $(MMS$TARGET_NAME)_vms.c;
666
2ae324a7 667# gcc cpp broken -- doesn't look in directory of source file for #include ""
668.ifdef GNUC
669[.x2p]hash$(O) : [.x2p]hash.c
670 $(CC) $(CFLAGS) /Include=[.x2p] $(MMS$SOURCE)
671
672[.x2p]str$(O) : [.x2p]str.c
673 $(CC) $(CFLAGS) /Include=[.x2p] $(MMS$SOURCE)
674
675[.x2p]util$(O) : [.x2p]util.c
676 $(CC) $(CFLAGS) /Include=[.x2p] $(MMS$SOURCE)
677
678[.x2p]walk$(O) : [.x2p]walk.c
679 $(CC) $(CFLAGS) /Include=[.x2p] $(MMS$SOURCE)
680.endif
681
774d564b 682[.lib.pod]pod2html.com : [.pod]pod2html.PL $(ARCHDIR)Config.pm
c07a80fd 683 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
684 $(MINIPERL) $(MMS$SOURCE)
774d564b 685 Rename/Log [.pod]pod2html.com $(MMS$TARGET)
c07a80fd 686
774d564b 687[.lib.pod]pod2latex.com : [.pod]pod2latex.PL $(ARCHDIR)Config.pm
c07a80fd 688 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
689 $(MINIPERL) $(MMS$SOURCE)
774d564b 690 Rename/Log [.pod]pod2latex.com $(MMS$TARGET)
c07a80fd 691
774d564b 692[.lib.pod]pod2man.com : [.pod]pod2man.PL $(ARCHDIR)Config.pm
c07a80fd 693 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
694 $(MINIPERL) $(MMS$SOURCE)
774d564b 695 Rename/Log [.pod]pod2man.com $(MMS$TARGET)
c07a80fd 696
774d564b 697[.lib.pod]pod2text.com : [.pod]pod2text.PL $(ARCHDIR)Config.pm
c07a80fd 698 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
699 $(MINIPERL) $(MMS$SOURCE)
774d564b 700 Rename/Log [.pod]pod2text.com $(MMS$TARGET)
c07a80fd 701
ff0cee69 702preplibrary : $(MINIPERL_EXE) $(LIBPREREQ) $(SOCKPM)
748a9306 703 @ Write Sys$Output "Autosplitting Perl library . . ."
704 @ Create/Directory [.lib.auto]
e518068a 705 @ $(MINIPERL) -e "use AutoSplit; autosplit_lib_modules(@ARGV)" [.lib]*.pm [.lib.*]*.pm
a0d0e21e 706
c07a80fd 707[.lib.pod]perl.pod : [.pod]perl.pod
708 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
709 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
710
71be2cbc 711[.lib.pod]perlapio.pod : [.pod]perlapio.pod
712 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
713 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
714
c07a80fd 715[.lib.pod]perlbook.pod : [.pod]perlbook.pod
716 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
717 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
718
719[.lib.pod]perlbot.pod : [.pod]perlbot.pod
720 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
721 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
722
723[.lib.pod]perlcall.pod : [.pod]perlcall.pod
724 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
725 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
726
727[.lib.pod]perldata.pod : [.pod]perldata.pod
728 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
729 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
730
731[.lib.pod]perldebug.pod : [.pod]perldebug.pod
732 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
733 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
734
aa689395 735[.lib.pod]perldelta.pod : [.pod]perldelta.pod
736 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
737 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
738
c07a80fd 739[.lib.pod]perldiag.pod : [.pod]perldiag.pod
740 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
741 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
742
743[.lib.pod]perldsc.pod : [.pod]perldsc.pod
744 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
745 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
746
747[.lib.pod]perlembed.pod : [.pod]perlembed.pod
748 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
749 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
750
751[.lib.pod]perlform.pod : [.pod]perlform.pod
752 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
753 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
754
755[.lib.pod]perlfunc.pod : [.pod]perlfunc.pod
756 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
757 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
758
759[.lib.pod]perlguts.pod : [.pod]perlguts.pod
760 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
761 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
762
71be2cbc 763[.lib.pod]perllocale.pod : [.pod]perllocale.pod
764 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
765 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
766
c07a80fd 767[.lib.pod]perlipc.pod : [.pod]perlipc.pod
768 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
769 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
770
771[.lib.pod]perllol.pod : [.pod]perllol.pod
772 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
773 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
774
775[.lib.pod]perlmod.pod : [.pod]perlmod.pod
776 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
777 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
778
779[.lib.pod]perlobj.pod : [.pod]perlobj.pod
780 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
781 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
782
783[.lib.pod]perlop.pod : [.pod]perlop.pod
784 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
785 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
786
c07a80fd 787[.lib.pod]perlpod.pod : [.pod]perlpod.pod
788 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
789 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
790
791[.lib.pod]perlre.pod : [.pod]perlre.pod
792 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
793 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
794
795[.lib.pod]perlref.pod : [.pod]perlref.pod
796 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
797 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
798
799[.lib.pod]perlrun.pod : [.pod]perlrun.pod
800 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
801 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
802
803[.lib.pod]perlsec.pod : [.pod]perlsec.pod
804 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
805 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
806
807[.lib.pod]perlstyle.pod : [.pod]perlstyle.pod
808 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
809 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
810
811[.lib.pod]perlsub.pod : [.pod]perlsub.pod
812 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
813 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
814
815[.lib.pod]perlsyn.pod : [.pod]perlsyn.pod
816 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
817 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
818
819[.lib.pod]perltie.pod : [.pod]perltie.pod
820 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
821 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
822
823[.lib.pod]perltoc.pod : [.pod]perltoc.pod
824 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
825 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
826
aa689395 827[.lib.pod]perltoot.pod : [.pod]perltoot.pod
828 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
829 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
830
c07a80fd 831[.lib.pod]perltrap.pod : [.pod]perltrap.pod
832 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
833 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
834
835[.lib.pod]perlvar.pod : [.pod]perlvar.pod
836 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
837 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
838
839[.lib.pod]perlxs.pod : [.pod]perlxs.pod
840 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
841 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
842
843[.lib.pod]perlxstut.pod : [.pod]perlxstut.pod
844 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
845 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
846
847[.lib.pod]perlvms.pod : [.vms]perlvms.pod
848 @ If F$Search("[.lib]pod.dir").eqs."" Then Create/Directory [.lib.pod]
849 @ Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
850
851printconfig :
852 @ @[.vms]make_command $(MMS) $(MMSQUALIFIERS) $(MMSTARGETS)
853 @ @[.vms]myconfig "$(CC)" "$(CFLAGS)" "$(LINKFLAGS)" "$(LIBS1)" "$(LIBS2)" "$(SOCKLIB)" "$(EXT)" "$(DBG)"
854
a0d0e21e 855.ifdef SOCKET
a5f75d66 856
857.ifdef LINK_ONLY
858.else
a5f75d66 859[.ext.Socket]Socket$(O) : [.ext.Socket]Socket.c
860 $(CC) $(CFLAGS) /Object=$(MMS$TARGET) $(MMS$SOURCE)
861
ff0cee69 862[.ext.Socket]Socket.c : [.ext.Socket]Socket.xs [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE)
a5f75d66 863 $(XSUBPP) $(MMS$SOURCE) >$(MMS$TARGET)
864.endif # !LINK_ONLY
865
a0d0e21e 866vmsish.h : $(SOCKH)
867
fc1ce8cc 868$(SOCKOBJ) : $(SOCKC) EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
869
a0d0e21e 870$(SOCKC) : [.vms]$(SOCKC)
871 Copy/Log/NoConfirm [.vms]$(SOCKC) []$(SOCKC)
872
873$(SOCKH) : [.vms]$(SOCKH)
874 Copy/Log/NoConfirm [.vms]$(SOCKH) []$(SOCKH)
4633a7c4 875
4633a7c4 876[.lib]Socket.pm : [.ext.Socket]Socket.pm
877 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
a0d0e21e 878.endif
879
e518068a 880# The following three header files are generated automatically
881# keywords.h : keywords.pl
882# opcode.h : opcode.pl
883# embed.h : embed.pl global.sym interp.sym
884# The correct versions should be already supplied with the perl kit,
885# in case you don't have perl available.
886# To force them to run, type
887# MMS regen_headers
888regen_headers :
889 $(INSTPERL) keywords.pl
890 $(INSTPERL) opcode.pl
891 $(INSTPERL) embed.pl
a0d0e21e 892
4633a7c4 893# VMS uses modified perly.[ch] with tags for globaldefs if using DEC compiler
894perly.c : [.vms]perly_c.vms
895 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
896perly.h : [.vms]perly_h.vms
897 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
a0d0e21e 898
899# I now supply perly.c with the kits, so the following section is
900# commented out if you don't have byacc.
4633a7c4 901# Altered for VMS by Charles Bailey bailey@genetics.upenn.edu
a0d0e21e 902# perly.c:
e518068a 903# @ Write Sys$Output "Expect 80 shift/reduce and 62 reduce/reduce conflicts"
a0d0e21e 904# \$(BYACC) -d perly.y
4633a7c4 905# Has to be done by hand or by POSIX shell under VMS
a0d0e21e 906# sh \$(shellflags) ./perly.fixer y.tab.c perly.c
4633a7c4 907# rename y.tab.h perly.h
908# $(INSTPERL) [.vms]vms_yfix.pl perly.c perly.h [.vms]perly_c.vms [.vms]perly_h.vms
a0d0e21e 909
a5f75d66 910.ifdef LINK_ONLY
911.else
a0d0e21e 912perly$(O) : perly.c, perly.h, $(h)
913 $(CC) $(CFLAGS) $(MMS$SOURCE)
a5f75d66 914.endif
a0d0e21e 915
774d564b 916[.t.lib]vmsfspec.t : [.vms.ext]filespec.t
917 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
918
68dc0745 919[.t.lib]vmsish.t : [.vms.ext]vmsish.t
920 Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET)
921
922test : all [.t.lib]vmsfspec.t [.t.lib]vmsish.t
17f14336 923 - @[.VMS]Test.Com "$(E)"
a0d0e21e 924
1e422769 925archify : all
926 @ Write Sys$Output "Moving files to architecture-specific locations for $(ARCH)"
927 archroot = "$(ARCHAUTO)" - "]" + "...]"
9607fc9c 928 Backup/Log/Verify [.lib.auto...]*.*;/Exclude=(*.al,*.ix) 'archroot'/New_Version
929 Delete/Log/NoConfirm [.lib.auto...]*.*;*/exclude=(*.al,*.ix,*.dir)
1e422769 930 Delete/Log/NoConfirm [.lib]Config.pm;*
931 Copy/Log/NoConfirm *$(E);,[.x2p]a2p$(E); $(ARCHDIR)
932 Delete/Log/NoConfirm Perl*$(E);*,[.x2p]a2p$(E);*
933 @ Write Sys$Output "Architecture-specific setup completed."
934 @ Write Sys$Output "Before building for another architecture, be sure to"
935 @ Write Sys$Output " 1. $(MMS)$(MMSQUALIFIERS) clean"
936 @ Write Sys$Output " 2. Delete Miniperl$(E)"
937
748a9306 938# CORE subset for MakeMaker, so we can build Perl without sources
939# Should move to VMS installperl when we get one
940$(ARCHCORE)EXTERN.h : EXTERN.h
d896966d 941 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 942 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
943$(ARCHCORE)INTERN.h : INTERN.h
d896966d 944 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 945 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
946$(ARCHCORE)XSUB.h : XSUB.h
d896966d 947 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 948 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
949$(ARCHCORE)av.h : av.h
d896966d 950 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 951 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
952$(ARCHCORE)config.h : config.h
d896966d 953 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 954 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
955$(ARCHCORE)cop.h : cop.h
d896966d 956 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 957 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
958$(ARCHCORE)cv.h : cv.h
d896966d 959 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 960 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
961$(ARCHCORE)embed.h : embed.h
d896966d 962 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 963 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
fc1ce8cc 964$(ARCHCORE)embedvar.h : embedvar.h
965 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
966 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
967.ifdef FAKETHREADED
968$(ARCHCORE)fakethr.h : fakethr.h
969 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
970 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
971.endif
748a9306 972$(ARCHCORE)form.h : form.h
d896966d 973 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 974 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
975$(ARCHCORE)gv.h : gv.h
d896966d 976 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 977 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
978$(ARCHCORE)handy.h : handy.h
d896966d 979 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 980 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
981$(ARCHCORE)hv.h : hv.h
d896966d 982 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 983 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
fc1ce8cc 984$(ARCHCORE)intrpvar.h : intrpvar.h
985 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
986 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
748a9306 987$(ARCHCORE)keywords.h : keywords.h
d896966d 988 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 989 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
990$(ARCHCORE)mg.h : mg.h
d896966d 991 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 992 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
993$(ARCHCORE)op.h : op.h
d896966d 994 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 995 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
996$(ARCHCORE)opcode.h : opcode.h
d896966d 997 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 998 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
999$(ARCHCORE)patchlevel.h : patchlevel.h
d896966d 1000 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1001 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1002$(ARCHCORE)perl.h : perl.h
d896966d 1003 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1004 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
740ce14c 1005$(ARCHCORE)perlio.h : perlio.h
1006 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
1007 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1008$(ARCHCORE)perlsdio.h : perlsdio.h
1009 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
1010 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
fc1ce8cc 1011$(ARCHCORE)perlvars.h : perlvars.h
1012 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
1013 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
748a9306 1014$(ARCHCORE)perly.h : perly.h
d896966d 1015 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1016 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1017$(ARCHCORE)pp.h : pp.h
d896966d 1018 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1019 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1020$(ARCHCORE)proto.h : proto.h
d896966d 1021 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1022 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1023$(ARCHCORE)regcomp.h : regcomp.h
d896966d 1024 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1025 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1026$(ARCHCORE)regexp.h : regexp.h
d896966d 1027 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1028 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1029$(ARCHCORE)scope.h : scope.h
d896966d 1030 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1031 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1032$(ARCHCORE)sv.h : sv.h
d896966d 1033 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1034 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
fc1ce8cc 1035$(ARCHCORE)thrdvar.h : thrdvar.h
1036 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
1037 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1038$(ARCHCORE)thread.h : thread.h
1039 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
1040 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
748a9306 1041$(ARCHCORE)util.h : util.h
d896966d 1042 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1043 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1044$(ARCHCORE)vmsish.h : vmsish.h
d896966d 1045 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1046 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1047.ifdef SOCKET
1048$(ARCHCORE)$(SOCKH) : $(SOCKH)
d896966d 1049 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1050 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1051.endif
1052$(ARCHCORE)$(DBG)libperl$(OLB) : $(DBG)libperl$(OLB) $(DBG)perlshr_xtras.ts
d896966d 1053 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1054 Copy/Log $(MMS$SOURCE) $(MMS$TARGET)
1055$(ARCHCORE)perlshr_attr.opt : $(DBG)perlshr_xtras.ts
d896966d 1056 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1057 Copy/Log perlshr_attr.opt $(MMS$TARGET)
1058$(ARCHCORE)$(DBG)perlshr_bld.opt : $(DBG)perlshr_xtras.ts
d896966d 1059 @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE)
748a9306 1060 Copy/Log $(DBG)perlshr_bld.opt $(MMS$TARGET)
1061$(ARCHAUTO)time.stamp :
d896966d 1062 @ If F$Search("$(ARCHDIR)auto.dir").eqs."" Then Create/Directory $(ARCHAUTO)
748a9306 1063 @ If F$Search("$(MMS$TARGET)").eqs."" Then Copy/NoConfirm _NLA0: $(MMS$TARGET)
1064
a5f75d66 1065.ifdef LINK_ONLY
1066.else
68dc0745 1067# We need an action line here for broken older versions of MMS which
1068# otherwise conclude that they should be compiling [.x2p]utils.c :-(
1069util$(O) : util.c
1070 $(CC) $(CFLAGS) util.c
a0d0e21e 1071# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE
fc1ce8cc 1072av$(O) : av.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1073deb$(O) : deb.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1074doio$(O) : doio.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1075doop$(O) : doop.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1076dump$(O) : dump.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1077globals$(O) : globals.c INTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1078gv$(O) : gv.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1079hv$(O) : hv.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1080malloc$(O) : malloc.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1081mg$(O) : mg.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1082miniperlmain$(O) : miniperlmain.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1083op$(O) : op.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1084perl$(O) : perl.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h patchlevel.h
1085perlio$(O) : perlio.c config.h EXTERN.h perl.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1086perlmain$(O) : perlmain.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1087perly$(O) : perly.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1088pp$(O) : pp.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1089pp_ctl$(O) : pp_ctl.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1090pp_hot$(O) : pp_hot.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1091pp_sys$(O) : pp_sys.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1092regcomp$(O) : regcomp.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h INTERN.h regcomp.h
1093regexec$(O) : regexec.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h regcomp.h
1094run$(O) : run.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1095scope$(O) : scope.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1096sv$(O) : sv.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1097taint$(O) : taint.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1098toke$(O) : toke.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h keywords.h
1099universal$(O) : universal.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h XSUB.h
1100util$(O) : util.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h
1101vms$(O) : vms.c EXTERN.h perl.h config.h embed.h perlio.h perlsdio.h handy.h vmsish.h regexp.h sv.h util.h form.h gv.h cv.h opcode.h op.h cop.h av.h hv.h mg.h scope.h perly.h thread.h pp.h proto.h embedvar.h perlvars.h thrdvar.h intrpvar.h XSUB.h
1102[.x2p]a2p$(O) : [.x2p]a2p.c [.x2p]a2py.c [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h config.h handy.h
1103[.x2p]hash$(O) : [.x2p]hash.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
1104[.x2p]str$(O) : [.x2p]str.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
1105[.x2p]util$(O) : [.x2p]util.c [.x2p]EXTERN.h [.x2p]INTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
1106[.x2p]walk$(O) : [.x2p]walk.c [.x2p]EXTERN.h [.x2p]a2p.h [.x2p]hash.h [.x2p]str.h [.x2p]util.h config.h handy.h
a5f75d66 1107.endif # !LINK_ONLY
a0d0e21e 1108
1109config.h : [.vms]config.vms
1110 Copy/Log/NoConfirm [.vms]config.vms []config.h
1111
1112vmsish.h : [.vms]vmsish.h
1113 Copy/Log/NoConfirm [.vms]vmsish.h []vmsish.h
1114
1115vms.c : [.vms]vms.c
1116 Copy/Log/Noconfirm [.vms]vms.c []
1117
1118$(CRTL) : $(MAKEFILE)
1119 @ @[.vms]genopt "$(CRTL)/Write" "|" "$(LIBS1)|$(LIBS2)|$(SOCKLIB)"
1120
1121
1122cleanlis :
1123 - If F$Search("*.Lis").nes."" Then Delete/NoConfirm/Log *.Lis;*
748a9306 1124 - If F$Search("*.CPP").nes."" Then Delete/NoConfirm/Log *.CPP;*
a0d0e21e 1125 - If F$Search("*.Map").nes."" Then Delete/NoConfirm/Log *.Map;*
1126
1127tidy : cleanlis
bbce6d69 1128 - If F$Search("[...]*.Opt;-1").nes."" Then Purge/NoConfirm/Log [...]*.Opt
1129 - If F$Search("[...]*$(O);-1").nes."" Then Purge/NoConfirm/Log [...]*$(O)
1130 - If F$Search("[...]*$(E);-1").nes."" Then Purge/NoConfirm/Log [...]*$(E)
a0d0e21e 1131 - If F$Search("Config.H;-1").nes."" Then Purge/NoConfirm/Log Config.H
1132 - If F$Search("Config.SH;-1").nes."" Then Purge/NoConfirm/Log Config.SH
4633a7c4 1133 - If F$Search("perly.c;-1").nes."" Then Purge/NoConfirm/Log perly.c
1134 - If F$Search("perly.h;-1").nes."" Then Purge/NoConfirm/Log perly.h
a0d0e21e 1135 - If F$Search("VMSish.H;-1").nes."" Then Purge/NoConfirm/Log VMSish.H
1136 - If F$Search("VMS.C;-1") .nes."" Then Purge/NoConfirm/Log VMS.C
1137 - If F$Search("Perlmain.C;-1") .nes."" Then Purge/NoConfirm/Log Perlmain.C
1138 - If F$Search("Perlshr_Gbl*.Mar;-1") .nes."" Then Purge/NoConfirm/Log Perlshr_Gbl*.Mar
1139 - If F$Search("[.Ext.DynaLoader]DL_VMS$(O);-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O)
1140 - If F$Search("[.Ext.DynaLoader]DL_VMS.C;-1").nes."" Then Purge/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C
17f14336 1141 - If F$Search("[.Ext.Opcode...];-1").nes."" Then Purge/NoConfirm/Log [.Ext.Opcode]
748a9306 1142 - If F$Search("[.VMS.Ext...]*.C;-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*.C
1143 - If F$Search("[.VMS.Ext...]*$(O);-1").nes."" Then Purge/NoConfirm/Log [.VMS.Ext...]*$(O)
a0d0e21e 1144 - If F$Search("[.Lib.Auto...]*.al;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Auto...]*.al
748a9306 1145 - If F$Search("[.Lib.Auto...]autosplit.ix;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Auto...]autosplit.ix
1146 - If F$Search("[.Lib]DynaLoader.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]DynaLoader.pm
e518068a 1147 - If F$Search("[.Lib]Socket.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]Socket.pm
1148 - If F$Search("[.Lib]Config.pm;-1").nes."" Then Purge/NoConfirm/Log [.Lib]Config.pm
d896966d 1149 - If F$Search("$(ARCHDIR)Config.pm;-1").nes."" Then Purge/NoConfirm/Log $(ARCHDIR)Config.pm
ff0cee69 1150 - If F$Search("[.lib.ExtUtils]Miniperl.pm").nes."" Then Purge/NoConfirm/Log [.lib.ExtUtils]Miniperl.pm;*
1151 - If F$Search("[.lib.ExtUtils]XSSymSet.pm").nes."" Then Purge/NoConfirm/Log [.lib.ExtUtils]XSSymSet.pm;*
748a9306 1152 - If F$Search("[.Lib.VMS]*.*;-1").nes."" Then Purge/NoConfirm/Log [.Lib.VMS]*.*
c07a80fd 1153 - If F$Search("[.Lib.Pod]*.Pod;-1").nes."" Then Purge/NoConfirm/Log [.Lib.Pod]*.Pod
748a9306 1154 - If F$Search("$(ARCHCORE)*.*").nes."" Then Purge/NoConfirm/Log $(ARCHCORE)*.*
f86702cc 1155 - If F$Search("[.lib]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib]*.com
1156 - If F$Search("[.utils]*.com;-1").nes."" Then Purge/NoConfirm/Log [.utils]*.com
1157 - If F$Search("[.x2p]*.com;-1").nes."" Then Purge/NoConfirm/Log [.x2p]*.com
68dc0745 1158 - If F$Search("[.lib.pod]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pod]*.com
a0d0e21e 1159
1160clean : tidy
d896966d 1161 Set Default [.ext.Fcntl]
1162 - $(MMS) clean
1163 Set Default [--]
17f14336 1164 Set Default [.ext.IO]
1165 - $(MMS) clean
1166 Set Default [--]
1167 Set Default [.ext.Opcode]
d896966d 1168 - $(MMS) clean
1169 Set Default [--]
55497cff 1170.ifdef DECC
1171 Set Default [.ext.POSIX]
1172 - $(MMS) clean
1173 Set Default [--]
1174.endif
748a9306 1175 - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*/Exclude=PerlShr_*.Opt
774d564b 1176 - If F$Search("[...]*$(O);*") .nes."" Then Delete/NoConfirm/Log [...]*$(O);*
a0d0e21e 1177 - If F$Search("Config.H").nes."" Then Delete/NoConfirm/Log Config.H;*
1178 - If F$Search("Config.SH").nes."" Then Delete/NoConfirm/Log Config.SH;*
1179 - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKH)")).nes."" Then Delete/NoConfirm/Log $(SOCKH);*
1180 - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKC)")).nes."" Then Delete/NoConfirm/Log $(SOCKC);*
4633a7c4 1181 - If F$Search("perly.c").nes."" Then Delete/NoConfirm/Log perly.c;*
1182 - If F$Search("perly.h").nes."" Then Delete/NoConfirm/Log perly.h;*
a0d0e21e 1183 - If F$Search("VMSish.H").nes."" Then Delete/NoConfirm/Log VMSish.H;*
1184 - If F$Search("VMS.C") .nes."" Then Delete/NoConfirm/Log VMS.C;*
1185 - If F$Search("Perlmain.C") .nes."" Then Delete/NoConfirm/Log Perlmain.C;*
1186 - If F$Search("Perlshr_Gbl*.Mar") .nes."" Then Delete/NoConfirm/Log Perlshr_Gbl*.Mar;*
1187 - If F$Search("*.TS").nes."" Then Delete/NoConfirm/Log *.TS;*
1188 - If F$Search("[.Ext.DynaLoader]DL_VMS$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS$(O);*
1189 - If F$Search("[.Ext.DynaLoader]DL_VMS.C").nes."" Then Delete/NoConfirm/Log [.Ext.DynaLoader]DL_VMS.C;*
4633a7c4 1190 - If F$Search("[.Ext.Socket]Socket$(O)").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket$(O);*
1191 - If F$Search("[.Ext.Socket]Socket.C").nes."" Then Delete/NoConfirm/Log [.Ext.Socket]Socket.C;*
748a9306 1192 - If F$Search("[.VMS.Ext...]*.C").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*.C;*
1193 - If F$Search("[.VMS.Ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*$(O);*
d896966d 1194
1195realclean : clean
a5f75d66 1196 Set Default [.ext.Fcntl]
d896966d 1197 - $(MMS) realclean
a5f75d66 1198 Set Default [--]
17f14336 1199 Set Default [.ext.IO]
1200 - $(MMS) realclean
1201 Set Default [--]
1202 Set Default [.ext.Opcode]
d896966d 1203 - $(MMS) realclean
c07a80fd 1204 Set Default [--]
5b411029 1205 Set Default [.ext.attrs]
1206 - $(MMS) realclean
1207 Set Default [--]
1208.ifdef THREAD
1209 Set Default [.ext.Thread]
1210 - $(MMS) realclean
1211 Set Default [--]
1212.endif
55497cff 1213.ifdef DECC
1214 Set Default [.ext.POSIX]
1215 - $(MMS) realclean
1216 Set Default [--]
1217.endif
748a9306 1218 - If F$Search("*$(OLB)").nes."" Then Delete/NoConfirm/Log *$(OLB);*
a0d0e21e 1219 - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*
4633a7c4 1220 - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCH)'],1,0);"
748a9306 1221 - If F$Search("[.Lib]DynaLoader.pm").nes."" Then Delete/NoConfirm/Log [.Lib]DynaLoader.pm;*
17f14336 1222 - If F$Search("[.Lib]Socket.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Socket.pm;*
e518068a 1223 - If F$Search("[.Lib]Config.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Config.pm;*
f86702cc 1224 - If F$Search("[.Lib]*.com").nes."" Then Delete/NoConfirm/Log [.Lib]*.com;*
1225 - If F$Search("[.utils]*.com").nes."" Then Delete/NoConfirm/Log [.utils]*.com;*
1226 - If F$Search("[.x2p]*.com").nes."" Then Delete/NoConfirm/Log [.x2p]*.com;*
d896966d 1227 - If F$Search("$(ARCHDIR)Config.pm").nes."" Then Delete/NoConfirm/Log $(ARCHDIR)Config.pm;*
c07a80fd 1228 - If F$Search("[.lib.ExtUtils]Miniperl.pm").nes."" Then Delete/NoConfirm/Log [.lib.ExtUtils]Miniperl.pm;*
ff0cee69 1229 - If F$Search("[.lib.ExtUtils]XSSymSet.pm").nes."" Then Delete/NoConfirm/Log [.lib.ExtUtils]XSSymSet.pm;*
c07a80fd 1230 - If F$Search("[.lib.pod]*.pod").nes."" Then Delete/NoConfirm/Log [.lib.pod]*.pod;*
f86702cc 1231 - If F$Search("[.lib.pod]perldoc.com").nes."" Then Delete/NoConfirm/Log [.lib.pod]perldoc.com;*
774d564b 1232 - If F$Search("[.lib.pod]pod2*.com").nes."" Then Delete/NoConfirm/Log [.lib.pod]pod2*.com;*
68dc0745 1233 - If F$Search("[.t.lib]vms*.t").nes."" Then Delete/NoConfirm/Log [.t.lib]vms*.t;*
774d564b 1234 - If F$Search("[...]*$(E)").nes."" Then Delete/NoConfirm/Log [...]*$(E);*
a0d0e21e 1235
1236cleansrc : clean
a0d0e21e 1237 - If F$Search("*.C;-1").nes."" Then Purge/NoConfirm/Log *.C
1238 - If F$Search("*.H;-1").nes."" Then Purge/NoConfirm/Log *.H
1239 - If F$Search("*.VMS;-1").nes."" Then Purge/NoConfirm/Log *.VMS
a0d0e21e 1240 - If F$Search("[.VMS]$(MAKEFILE);-1").nes."" Then Purge/NoConfirm/Log [.VMS]$(MAKEFILE)
1241 - If F$Search("[.VMS]*.C;-1").nes."" Then Purge/NoConfirm/Log [.VMS]*.C
1242 - If F$Search("[.VMS]*.H;-1").nes."" Then Purge/NoConfirm/Log [.VMS]*.H
1243 - If F$Search("[.VMS]*.Pl;-1").nes."" Then Purge/NoConfirm/Log [.VMS]*.Pl
1244 - If F$Search("[.VMS]*.VMS;-1").nes."" Then Purge/NoConfirm/Log [.VMS]*.VMS
748a9306 1245 - If F$Search("[.VMS...]*.pm;-1").nes."" Then Purge/NoConfirm/Log [.VMS...]*.pm
1246 - If F$Search("[.VMS...]*.xs;-1").nes."" Then Purge/NoConfirm/Log [.VMS...]*.xs