From: Charles Bailey Date: Wed, 17 Mar 1999 23:55:23 +0000 (-0400) Subject: hand-applied conflicting parts of suggested patch X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=cc391245e1d1990aad64067bd4c25ba76be67238;p=p5sagit%2Fp5-mst-13.2.git hand-applied conflicting parts of suggested patch Message-id: <01J8YELSL7WK001E7S@mail.newman.upenn.edu> Subject: [PATCH 5.005_56] VMS configuration/build p4raw-id: //depot/perl@3273 --- diff --git a/configure.com b/configure.com index 7e28293..e31d98b 100644 --- a/configure.com +++ b/configure.com @@ -45,11 +45,11 @@ $ Thread_Live_Dangerously = "MT=" $ use_two_pot_malloc = "N" $ use_pack_malloc = "N" $ use_debugmalloc = "N" -$ preload_env = "N" +$ d_secintgenv = "N" $ use_multiplicity = "N" $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT") -$! max_allowed_dir_depth = 3 ! e.g. [A.B.PERL5_00n] not [A.B.C.PERL5_00n] -$ max_allowed_dir_depth = 2 ! e.g. [FOO.PERL5_00n] not [FOO.BAR.PERL5_00n] +$ max_allowed_dir_depth = 3 ! e.g. [A.B.PERL5_00n] not [A.B.C.PERL5_00n] +$! max_allowed_dir_depth = 2 ! e.g. [FOO.PERL5_00n] not [FOO.BAR.PERL5_00n] $! $ vms_filcnt = F$GETJPI ("","FILCNT") $! @@ -972,13 +972,13 @@ $ READ/END_Of_File=Close_patch CONFIG line $ IF ((F$LOCATE("#define PERL_VERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_patch)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") -$ patchlevel = F$EXTRACT(18,F$LENGTH(line)-18,line) +$ patchlevel = F$ELEMENT(2," ",line) $ got_patch = "true" $ ENDIF $ IF ((F$LOCATE("#define PERL_SUBVERSION",line).NE.F$LENGTH(line)).AND.(.NOT.got_sub)) $ THEN $ line = F$EDIT(line,"COMPRESS, TRIM") -$ subversion = F$EXTRACT(18,F$LENGTH(line)-18,line) +$ subversion = F$ELEMENT(2," ",line) $ got_sub = "true" $ ENDIF $ IF (.NOT.got_patch).OR.(.NOT.got_sub) THEN GOTO Patchlevel_h_loop @@ -1562,7 +1562,7 @@ $ IF mydomain.NES."" !no periods in DECnet names like "MYDECNODE::" $ THEN $ rp = "What is your domain name? [''mydomain'] " $ GOSUB myread -$ IF ans THEN mydomain = ans +$ IF ans .nes. "" THEN mydomain = ans $!: translate upper to lower if necessary $ mydomain = F$EDIT(mydomain,"COLLAPSE") $ mylowdomain = F$EDIT(mydomain," LOWERCASE") @@ -1586,7 +1586,7 @@ $ ENDIF $ dflt = "''cf_by@''myhostname'"+"''mydomain'" $ rp = "What is your e-mail address? [''dflt'] " $ GOSUB myread -$ IF ans +$ IF ans .nes. "" $ THEN cf_email = ans $ ELSE cf_email = dflt $ ENDIF @@ -1603,7 +1603,7 @@ $ ENDIF $ dflt = "''cf_email'" $ rp = "Perl administrator e-mail address [''dflt'] " $ GOSUB myread -$ IF ans +$ IF ans .nes. "" $ THEN perladmin = ans $ ELSE perladmin = dflt $ ENDIF @@ -1727,6 +1727,44 @@ $ ENDIF $ ENDIF $ ENDIF $! +$! Ask whether they want to use secure logical translation when tainting +$ echo "" +$ echo "As Perl starts up, it checks several logical names, such as" +$ echo "PERL5LIB and PERL_ENV_TABLES, which allow you to modify aspects" +$ echo "of its behavior. For additional security, you may limit this" +$ echo "process to executive- and kernel-mode translation when tainting" +$ echo "is enabled. In this case, logical names normally skipped when" +$ echo "tainting is enabled (e.g. PERL5OPTS) are translated as well." +$ echo "If you do not choose to do this, the usual order of access modes" +$ echo "is used for logical name translation." +$ echo "" +$ echo "This restriction does not apply to the %ENV hash or to implicit" +$ echo "logical name translation during parsing of file specifications;" +$ echo "these always use the normal sequence of access modes for logical" +$ echo "name translation." +$ echo "" +$ dflt = "n" +$ rp = "Use secure logical name translation? [''dflt'] " +$ GOSUB myread +$ if ans.eqs."" then ans="''dflt'" +$ d_secintgenv = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE")) +$! +$! Ask whether they want to default filetypes +$ echo "" +$ echo "When you pass the name of a program to Perl on the command line," +$ echo "it generally doesn't supply any defaults unless the -S command" +$ echo "line switch is specified. In keeping with the VMS tradition of" +$ echo "default file types, however, you can configure Perl to try default" +$ echo "file types of nothing, .pl, and .com, in that order (e.g. typing" +$ echo """$ perl foo"" would cause Perl to look for foo., then foo.pl, and" +$ echo "finally foo.com)." +$ echo "" +$ dflt = "n" +$ rp = "Always use default file types? [''dflt'] " +$ GOSUB myread +$ if ans.eqs."" then ans="''dflt'" +$ d_alwdeftype = f$extract(0, 1, f$edit(ans,"TRIM,COMPRESS,UPCASE")) +$! $! Ask if they want to use perl's memory allocator $ echo "" $ echo "Perl has a built-in memory allocator that's tuned for perl's @@ -1780,7 +1818,7 @@ $ echo "you might, for example, want to build GDBM_File instead of $ echo "SDBM_File if you have the GDBM library built on your machine $ echo " $ echo "Which modules do you want to build into perl?" -$ dflt = "Fcntl Errno IO Opcode Dumper attrs re Stdio DCLsym B SDBM_File" +$ dflt = "Fcntl Errno IO Opcode Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File" $ if Using_Dec_C.eqs."Yes" $ THEN $ dflt = dflt + " POSIX" @@ -1929,7 +1967,7 @@ $! $! Invoke the subconfig piece $! $ echo "" -$ echo4 "Checking the C Run time library" +$ echo4 "Checking the C run-time library" $ dflt = F$ENVIRONMENT("DEFAULT") $ SET DEFAULT [-.vms] $ @subconfigure diff --git a/vms/descrip_mms.template b/vms/descrip_mms.template index 412d5ca..db39c7f 100644 --- a/vms/descrip_mms.template +++ b/vms/descrip_mms.template @@ -1,6 +1,6 @@ !GROK!THIS! # Descrip.MMS for perl5 on VMS -# Last revised 27-Feb-1998 by Charles Bailey bailey@genetics.upenn.edu +# Last revised 18-Oct-1998 by Charles Bailey bailey@newman.upenn.edu # #: This file uses MMS syntax, and can be processed using DEC's MMS product, #: or the free MMK clone (available by ftp at ftp.spc.edu). If you want to @@ -238,6 +238,10 @@ XSUBPP = $(MINIPERL) [.lib.extutils]xsubpp -noprototypes # life easier for those who modify Perl and rebuild it. INSTPERL = perl +# Space-separated list of "dynamic" extensions which should be built for +# run-time dynamic loading. +dynamic_ext = Fcntl Errno IO Opcode Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File POSIX + # Space-separated list of "static" extensions to build into perlshr (case counts). MYEXT = DynaLoader # object files for these extensions; the trailing comma is required if @@ -280,15 +284,16 @@ h2 = embed.h, form.h, gv.h, handy.h, hv.h, keywords.h, mg.h, op.h, thread.h h3 = opcode.h, patchlevel.h, perl.h, perly.h, pp.h, proto.h, regcomp.h h4 = regexp.h, scope.h, sv.h, vmsish.h, util.h, perlsdio.h, perlio.h h5 = embedvar.h, intrpvar.h, perlvars.h, thrdvar.h, iperlsys.h -h = $(h1), $(h2), $(h3), $(h4), $(h5) $(SOCKHLIS) $(THREADH) +h6 = pp_proto.h, regnodes.h, warning.h +h = $(h1), $(h2), $(h3), $(h4), $(h5), $(h6) $(SOCKHLIS) $(THREADH) c1 = av.c, scope.c, op.c, doop.c, doio.c, dump.c, hv.c, mg.c, universal.c, perlio.c, utf8.c c2 = perl.c, perly.c, pp.c, pp_hot.c, pp_ctl.c, pp_sys.c, regcomp.c, regexec.c $(MALLOC_C) -c3 = gv.c, sv.c, taint.c, toke.c, util.c, deb.c, run.c, globals.c, vms.c, byterun.c $(SOCKCLIS) +c3 = gv.c, sv.c, taint.c, toke.c, utf8.c, util.c, deb.c, run.c, globals.c, vms.c, byterun.c $(SOCKCLIS) c = $(c1), $(c2), $(c3), miniperlmain.c, perlmain.c, byteperl.c -obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), util$(O), mg$(O), perlio$(O) $(MALLOC_O) +obj1 = perl$(O), gv$(O), toke$(O), perly$(O), op$(O), regcomp$(O), dump$(O), utf8$(O), util$(O), mg$(O), perlio$(O) $(MALLOC_O) obj2 = hv$(O), av$(O), run$(O), pp_hot$(O), sv$(O), pp$(O), scope$(O), pp_ctl$(O), pp_sys$(O), utf8$(O) obj3 = doop$(O), doio$(O), regexec$(O), taint$(O), deb$(O), universal$(O), globals$(O), vms$(O), byterun$(O) $(SOCKOBJ) @@ -304,6 +309,7 @@ ac7 = $(ARCHCORE)regexp.h $(ARCHCORE)scope.h $(ARCHCORE)sv.h $(ARCHCORE)util.h ac8 = $(ARCHCORE)embedvar.h $(ARCHCORE)intrpvar.h $(ARCHCORE)perlvars.h $(ARCHCORE)thrdvar.h ac9 = $(ARCHCORE)vmsish.h $(ARCHCORE)warning.h $(ARCHCORE)$(DBG)libperl$(OLB) $(ARCHCORE)perlshr_attr.opt ac10 = $(ARCHCORE)$(DBG)perlshr_bld.opt $(ARCHCORE)bytecode.h $(ARCHCORE)byterun.h +ac11 = $(ARCHCORE)cc_runtime.h .ifdef SOCKET acs = $(ARCHCORE)$(SOCKH) .else @@ -347,8 +353,7 @@ all : base extras x2p archcorefiles preplibrary perlpods .endif base : miniperl perl @ $(NOOP) -#extras : Fcntl IO Opcode attrs Stdio DCLsym B $(POSIX) $(THREAD) SDBM_File libmods utils podxform -extras : $extensions libmods utils podxform +extras : dynext libmods utils podxform @ $(NOOP) libmods : $(LIBPREREQ) @ $(NOOP) @@ -448,7 +453,7 @@ $(ARCHDIR)config.pm : [.lib]config.pm Create/Directory $(ARCHDIR) Copy $(MMS$SOURCE) $(MMS$TARGET) -[.lib]config.pm : config.h $(MINIPERL_EXE) [.lib]re.pm +[.lib]config.pm : config.h $(MINIPERL_EXE) $(MINIPERL) ConfigPM. [.ext.dynaloader]dl_vms.c : [.ext.dynaloader]dl_vms.xs $(ARCHDIR)Config.pm [.lib.ExtUtils]XSSymSet.pm $(MINIPERL_EXE) @@ -466,387 +471,8 @@ $(ARCHDIR)config.pm : [.lib]config.pm $(MINIPERL) $(MMS$SOURCE) @ Rename/Log dynaloader.pm [.ext.dynaloader] -Opcode : [.lib]Opcode.pm [.lib]ops.pm [.lib]Safe.pm [.lib.auto.Opcode]Opcode$(E) - @ $(NOOP) - -[.lib]Opcode.pm : [.ext.Opcode]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.Opcode] - $(MMS) - @ Set Default [--] - -[.lib]ops.pm : [.ext.Opcode]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.Opcode] - $(MMS) - @ Set Default [--] - -[.lib]Safe.pm : [.ext.Opcode]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.Opcode] - $(MMS) - @ Set Default [--] - -[.lib.auto.Opcode]Opcode$(E) : [.ext.Opcode]Descrip.MMS - @ Set Default [.ext.Opcode] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.Opcode]Descrip.MMS : [.ext.Opcode]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Opcode]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -Fcntl : [.lib]Fcntl.pm [.lib.auto.Fcntl]Fcntl$(E) - @ $(NOOP) - -[.lib]Fcntl.pm : [.ext.Fcntl]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.Fcntl] - $(MMS) - @ Set Default [--] - -[.lib.auto.Fcntl]Fcntl$(E) : [.ext.Fcntl]Descrip.MMS - @ Set Default [.ext.Fcntl] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.Fcntl]Descrip.MMS : [.ext.Fcntl]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Fcntl]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -Stdio : [.lib.vms]Stdio.pm [.lib.auto.vms.Stdio]Stdio$(E) [.t.lib]vms_stdio.t - @ $(NOOP) - -[.lib.vms]Stdio.pm : [.vms.ext.stdio]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.vms.ext.Stdio] - $(MMS) - @ Set Default [---] - -[.lib.auto.vms.Stdio]Stdio$(E) : [.vms.ext.Stdio]Descrip.MMS - @ Set Default [.vms.ext.Stdio] - $(MMS) - @ Set Default [---] - -[.t.lib]vms_stdio.t : [.vms.ext.Stdio]test.pl - Copy/Log $(MMS$SOURCE) $(MMS$TARGET) - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.vms.ext.stdio]Descrip.MMS : [.vms.ext.Stdio]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[---.lib]" -e "chdir('[.vms.ext.Stdio]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[---.lib]" "INST_ARCHLIB=[---.lib]" - -DCLsym : [.lib.vms]DCLsym.pm [.lib.auto.vms.DCLsym]DCLsym$(E) [.t.lib]vms_dclsym.t - @ $(NOOP) - -[.lib.vms]DCLsym.pm : [.vms.ext.dclsym]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.vms.ext.DCLsym] - $(MMS) - @ Set Default [---] - -[.lib.auto.vms.DCLsym]DCLsym$(E) : [.vms.ext.DCLsym]Descrip.MMS - @ Set Default [.vms.ext.DCLsym] - $(MMS) - @ Set Default [---] - -[.t.lib]vms_dclsym.t : [.vms.ext.DCLsym]test.pl - Copy/Log $(MMS$SOURCE) $(MMS$TARGET) - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.vms.ext.DCLsym]Descrip.MMS : [.vms.ext.DCLsym]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[---.lib]" -e "chdir('[.vms.ext.DCLsym]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[---.lib]" "INST_ARCHLIB=[---.lib]" - -attrs : [.lib]attrs.pm [.lib.auto.attrs]attrs$(E) - @ $(NOOP) - -[.lib]attrs.pm : [.ext.attrs]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.attrs] - $(MMS) - @ Set Default [--] - -[.lib.auto.attrs]attrs$(E) : [.ext.attrs]Descrip.MMS - @ Set Default [.ext.attrs] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.attrs]Descrip.MMS : [.ext.Fcntl]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.attrs]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -POSIX : [.lib]POSIX.pm [.lib.auto.POSIX]POSIX$(E) - @ $(NOOP) - -[.lib]POSIX.pm : [.ext.POSIX]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.POSIX] - $(MMS) - @ Set Default [--] - -[.lib.auto.POSIX]POSIX$(E) : [.ext.POSIX]Descrip.MMS - @ Set Default [.ext.POSIX] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.POSIX]Descrip.MMS : [.ext.POSIX]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.POSIX]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -Dumper : [.lib.data]dumper.pm [.lib.auto.data.dumper]dumper$(E) - @ $(NOOP) - -[.lib.data]dumper.pm : [.ext.data.dumper]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.data.dumper] - $(MMS) - @ Set Default [---] - -[.lib.auto.data.dumper]dumper$(E) : [.ext.data.dumper]Descrip.MMS - @ Set Default [.ext.data.dumper] - $(MMS) - @ Set Default [---] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.data.dumper]Descrip.MMS : [.ext.data.dumper]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[---.lib]" -e "chdir('[.ext.data.dumper]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[---.lib]" "INST_ARCHLIB=[---.lib]" - -re : [.lib]re.pm [.lib.auto.re]re$(E) - @ $(NOOP) - -[.lib]re.pm : [.ext.re]re.pm - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ copy [.ext.re]re.pm [.lib]re.pm - -[.lib.auto.re]re$(E) : [.ext.re]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.re] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.re]Descrip.MMS : [.ext.re]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.re]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -THREAD : [.lib]THREAD.pm [.lib.auto.THREAD]THREAD$(E) - @ $(NOOP) - -[.lib]THREAD.pm : [.ext.THREAD]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.THREAD] - $(MMS) - @ Set Default [--] - -[.lib.auto.THREAD]THREAD$(E) : [.ext.THREAD]Descrip.MMS - @ Set Default [.ext.THREAD] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.THREAD]Descrip.MMS : [.ext.THREAD]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.THREAD]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -Errno : [.lib]Errno.pm - @ $(NOOP) - -[.lib]Errno.pm : [.ext.Errno]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.Errno] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.Errno]Descrip.MMS : [.ext.Errno]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.Errno]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -SDBM_File : [.lib]SDBM_File.pm [.lib.auto.SDBM_File]SDBM_File$(E) - @ $(NOOP) - -[.lib]SDBM_File.pm : [.ext.SDBM_File]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ If F$Search("[.lib.auto]sdbm.dir").eqs."" Then Create/Directory [.lib.auto.sdbm] - @ Set Default [.ext.SDBM_File] - $(MMS) - @ Set Default [--] - -[.lib.auto.SDBM_File]SDBM_File$(E) : [.ext.SDBM_File]Descrip.MMS - @ Set Default [.ext.SDBM_File] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.SDBM_File]Descrip.MMS : [.ext.SDBM_File]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.SDBM_File]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -IO : [.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) - @ $(NOOP) - -[.lib]IO.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.IO]File.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.IO]Handle.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.IO]Pipe.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.IO]Seekable.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.IO]Socket.pm : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -[.lib.auto.IO]IO$(E) : [.ext.IO]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.IO] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.IO]Descrip.MMS : [.ext.IO]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.IO]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" - -B : [.lib]B.pm [.lib]O.pm [.lib.B]Asmdata.pm [.lib.B]Assembler.pm [.lib.B]Bblock.pm [.lib.B]Bytecode.pm [.lib.B]C.pm [.lib.B]CC.pm [.lib.B]Debug.pm [.lib.B]Deparse.pm [.lib.B]Disassembler.pm [.lib.B]Lint.pm [.lib.B]Showlex.pm [.lib.B]Stackobj.pm [.lib.B]Terse.pm [.lib.B]Xref.pm [.lib.auto.B]B$(E) - @ $(NOOP) - -[.lib]B.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib]O.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Asmdata.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Assembler.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Bblock.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Bytecode.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]C.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]CC.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Debug.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Deparse.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Disassembler.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Lint.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Showlex.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Stackobj.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Terse.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.B]Xref.pm : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -[.lib.auto.B]B$(E) : [.ext.B]Descrip.MMS - @ If F$Search("[.lib]auto.dir").eqs."" Then Create/Directory [.lib.auto] - @ Set Default [.ext.B] - $(MMS) - @ Set Default [--] - -# Add "-I[--.lib]" t $(MINIPERL) so we use this copy of lib after C -# ${@} necessary to distract different versions of MM[SK]/make -[.ext.B]Descrip.MMS : [.ext.B]Makefile.PL $(LIBPREREQ) $(DBG)perlshr$(E) - $(MINIPERL) "-I[--.lib]" -e "chdir('[.ext.B]') or die $!; do 'Makefile.PL'; print ${@} if ${@};" "INST_LIB=[--.lib]" "INST_ARCHLIB=[--.lib]" +dynext : $(LIBPREREQ) $(DBG)perlshr$(E) + @build_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)" [.lib]vmsish.pm : [.vms.ext]vmsish.pm Copy/Log/NoConfirm $(MMS$SOURCE) $(MMS$TARGET) @@ -1140,6 +766,9 @@ regen_headers : $(INSTPERL) keywords.pl $(INSTPERL) opcode.pl $(INSTPERL) embed.pl + $(INSTPERL) bytecode.pl + $(INSTPERL) regcomp.pl + $(INSTPERL) warning.pl # VMS uses modified perly.[ch] with tags for globaldefs if using DEC compiler perly.c : [.vms]perly_c.vms @@ -1147,17 +776,6 @@ perly.c : [.vms]perly_c.vms perly.h : [.vms]perly_h.vms Copy/Log $(MMS$SOURCE) $(MMS$TARGET) -# I now supply perly.c with the kits, so the following section is -# commented out if you don't have byacc. -# Altered for VMS by Charles Bailey bailey@genetics.upenn.edu -# perly.c: -# @ Write Sys$Output "Expect 80 shift/reduce and 62 reduce/reduce conflicts" -# \$(BYACC) -d perly.y -# Has to be done by hand or by POSIX shell under VMS -# sh \$(shellflags) ./perly.fixer y.tab.c perly.c -# rename y.tab.h perly.h -# $(INSTPERL) [.vms]vms_yfix.pl perly.c perly.h [.vms]perly_c.vms [.vms]perly_h.vms - .ifdef LINK_ONLY .else perly$(O) : perly.c, perly.h, $(h) @@ -1216,6 +834,9 @@ $(ARCHCORE)config.h : config.h $(ARCHCORE)cop.h : cop.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/Log $(MMS$SOURCE) $(MMS$TARGET) +$(ARCHCORE)cc_runtime.h : cc_runtime.h + @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) + Copy/Log $(MMS$SOURCE) $(MMS$TARGET) $(ARCHCORE)cv.h : cv.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/Log $(MMS$SOURCE) $(MMS$TARGET) @@ -1281,6 +902,9 @@ $(ARCHCORE)perly.h : perly.h $(ARCHCORE)pp.h : pp.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/Log $(MMS$SOURCE) $(MMS$TARGET) +$(ARCHCORE)pp_proto.h : pp_proto.h + @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) + Copy/Log $(MMS$SOURCE) $(MMS$TARGET) $(ARCHCORE)proto.h : proto.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/Log $(MMS$SOURCE) $(MMS$TARGET) @@ -1311,6 +935,9 @@ $(ARCHCORE)utf8.h : utf8.h $(ARCHCORE)vmsish.h : vmsish.h @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) Copy/Log $(MMS$SOURCE) $(MMS$TARGET) +$(ARCHCORE)warning.h : warning.h + @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) + Copy/Log $(MMS$SOURCE) $(MMS$TARGET) .ifdef SOCKET $(ARCHCORE)$(SOCKH) : $(SOCKH) @ If F$Search("$(ARCHDIR)CORE.dir").eqs."" Then Create/Directory $(ARCHCORE) @@ -1336,103 +963,103 @@ $(ARCHAUTO)time.stamp : #util$(O) : util.c # $(CC) $(CORECFLAGS) $(MMS$SOURCE) # AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE -av$(O) : av.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +av$(O) : av.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -byterun$(O) : byterun.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +byterun$(O) : byterun.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -deb$(O) : deb.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +deb$(O) : deb.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -doio$(O) : doio.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +doio$(O) : doio.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -doop$(O) : doop.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +doop$(O) : doop.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -dump$(O) : dump.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +dump$(O) : dump.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -globals$(O) : globals.c INTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +globals$(O) : globals.c INTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -gv$(O) : gv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +gv$(O) : gv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -hv$(O) : hv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +hv$(O) : hv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -malloc$(O) : malloc.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +malloc$(O) : malloc.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -mg$(O) : mg.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +mg$(O) : mg.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -miniperlmain$(O) : miniperlmain.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +miniperlmain$(O) : miniperlmain.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -op$(O) : op.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +op$(O) : op.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perl$(O) : perl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +perl$(O) : perl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perlio$(O) : perlio.c config.h EXTERN.h perl.h bytecode.h byterun.h embed.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 iperlsys.h +perlio$(O) : perlio.c config.h EXTERN.h perl.h bytecode.h byterun.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perlmain$(O) : perlmain.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +perlmain$(O) : perlmain.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -byteperl$(O) : byteperl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +byteperl$(O) : byteperl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -perly$(O) : perly.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +perly$(O) : perly.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp$(O) : pp.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +pp$(O) : pp.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_ctl$(O) : pp_ctl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +pp_ctl$(O) : pp_ctl.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_hot$(O) : pp_hot.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +pp_hot$(O) : pp_hot.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -pp_sys$(O) : pp_sys.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +pp_sys$(O) : pp_sys.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -regcomp$(O) : regcomp.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +regcomp$(O) : regcomp.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 regnodes.h iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -regexec$(O) : regexec.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +regexec$(O) : regexec.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 regnodes.h iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -run$(O) : run.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +run$(O) : run.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -scope$(O) : scope.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +scope$(O) : scope.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -sv$(O) : sv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +sv$(O) : sv.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -taint$(O) : taint.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +taint$(O) : taint.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -toke$(O) : toke.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +toke$(O) : toke.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -utf8$(O) : utf8.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h utf8.h +universal$(O) : universal.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -universal$(O) : universal.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +utf8$(O) : utf8.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -util$(O) : util.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +util$(O) : util.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) -vms$(O) : vms.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h +vms$(O) : vms.c EXTERN.h perl.h bytecode.h byterun.h config.h embed.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 iperlsys.h pp_proto.h warning.h $(CC) $(CORECFLAGS) $(MMS$SOURCE) #[.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 @@ -1505,49 +1132,7 @@ tidy : cleanlis - If F$Search("[.lib.pod]*.com;-1").nes."" Then Purge/NoConfirm/Log [.lib.pod]*.com clean : tidy - Set Default [.ext.Fcntl] - - $(MMS) clean - Set Default [--] - Set Default [.ext.Errno] - - $(MMS) clean - Set Default [--] - Set Default [.ext.IO] - - $(MMS) clean - Set Default [--] - Set Default [.ext.Opcode] - - $(MMS) clean - Set Default [--] - Set Default [.ext.attrs] - - $(MMS) clean - Set Default [--] - Set Default [.ext.B] - - $(MMS) clean - Set Default [--] -.ifdef THREAD - Set Default [.ext.Thread] - - $(MMS) realclean - Set Default [--] -.endif -.ifdef DECC - Set Default [.ext.POSIX] - - $(MMS) clean - Set Default [--] -.endif - Set Default [.ext.SDBM_File] - - $(MMS) clean - Set Default [--] - Set Default [.vms.ext.Stdio] - - $(MMS) clean - Set Default [---] - Set Default [.vms.ext.DCLsym] - - $(MMS) clean - Set Default [---] - Set Default [.ext.re] - - $(MMS) clean - Set Default [--] - Set Default [.ext.dumper] - - $(MMS) clean - Set Default [--] + - @build_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)" clean - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;*/Exclude=PerlShr_*.Opt - If F$Search("[...]*$(O);*") .nes."" Then Delete/NoConfirm/Log [...]*$(O);* - If F$Search(F$Parse("Sys$Disk:[]","$(SOCKH)")).nes."" Then Delete/NoConfirm/Log $(SOCKH);* @@ -1568,55 +1153,14 @@ clean : tidy - If F$Search("[.VMS.Ext...]*$(O)").nes."" Then Delete/NoConfirm/Log [.VMS.Ext...]*$(O);* - If F$Search("[.pod]*.com").nes."" Then Delete/NoConfirm/Log [.pod]*.com;* -realclean : tidy - Set Default [.ext.Fcntl] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.Errno] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.IO] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.Opcode] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.attrs] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.B] - - $(MMS) realclean - Set Default [--] -.ifdef THREAD - Set Default [.ext.Thread] - - $(MMS) realclean - Set Default [--] -.endif -.ifdef DECC - Set Default [.ext.POSIX] - - $(MMS) realclean - Set Default [--] -.endif - Set Default [.ext.SDBM_File] - - $(MMS) realclean - Set Default [--] - Set Default [.vms.ext.Stdio] - - $(MMS) realclean - Set Default [---] - Set Default [.vms.ext.DCLsym] - - $(MMS) realclean - Set Default [---] - Set Default [.ext.dumper] - - $(MMS) realclean - Set Default [--] - Set Default [.ext.re] - - $(MMS) realclean - Set Default [--] +realclean : clean + - @build_ext "$(dynamic_ext)" "$(MINIPERL_EXE)" "$(MMS)" realclean - If F$Search("*$(OLB)").nes."" Then Delete/NoConfirm/Log *$(OLB);* - If F$Search("*.Opt").nes."" Then Delete/NoConfirm/Log *.Opt;* - If F$Search("Config.H").nes."" Then Delete/NoConfirm/Log Config.H;* - If F$Search("Config.SH").nes."" Then Delete/NoConfirm/Log Config.SH;* - - If F$Search("descrip.mms").nes."" Then Delete/NoConfirm/Log descrip.mms;* + - If F$Search("Descrip.MMS").nes."" Then Delete/NoConfirm/Log Descrip.MMS;* + - If F$Search("Build_Ext.Com").nes."" Then Delete/NoConfirm/Log Build_Ext.Com;* - $(MINIPERL) -e "use File::Path; rmtree(['lib/auto','lib/VMS','lib/$(ARCH)'],1,0);" - If F$Search("[.Lib]DynaLoader.pm").nes."" Then Delete/NoConfirm/Log [.Lib]DynaLoader.pm;* - If F$Search("[.Lib]Socket.pm").nes."" Then Delete/NoConfirm/Log [.Lib]Socket.pm;* @@ -1634,6 +1178,7 @@ realclean : tidy - If F$Search("[...]*$(E)").nes."" Then Delete/NoConfirm/Log [...]*$(E);* cleansrc : clean +!GROK!THIS! - If F$Search("*.C;-1").nes."" Then Purge/NoConfirm/Log *.C - If F$Search("*.H;-1").nes."" Then Purge/NoConfirm/Log *.H - If F$Search("*.VMS;-1").nes."" Then Purge/NoConfirm/Log *.VMS @@ -1644,4 +1189,3 @@ cleansrc : clean - If F$Search("[.VMS]*.VMS;-1").nes."" Then Purge/NoConfirm/Log [.VMS]*.VMS - If F$Search("[.VMS...]*.pm;-1").nes."" Then Purge/NoConfirm/Log [.VMS...]*.pm - If F$Search("[.VMS...]*.xs;-1").nes."" Then Purge/NoConfirm/Log [.VMS...]*.xs -!GROK!THIS! diff --git a/vms/gen_shrfls.pl b/vms/gen_shrfls.pl index 8e89348..3e70372 100644 --- a/vms/gen_shrfls.pl +++ b/vms/gen_shrfls.pl @@ -261,23 +261,13 @@ LINE: while () { } close CPP; -# This was: -# Kluge to determine whether we need to add EMBED prefix to -# symbols read from local list. vmsreaddirversions() is a VMS- -# specific function whose Perl_ prefix is added in vmsish.h -# if EMBED is #defined. -# -# but now we always define EMBED, so it's not a big deal any more while () { next if /^#/; s/\s+#.*\n//; next if /^\s*$/; ($key,$array) = split('=',$_); - if ($array eq 'vars') { - $key = "PL_$key"; - } else { - $key = "Perl_$key"; - } + if ($array eq 'vars') { $key = "PL_$key"; } + else { $key = "Perl_$key"; } print "Adding $key to \%$array list\n" if $debug > 1; ${$array}{$key}++; } @@ -304,14 +294,6 @@ if ($isvaxc) { print STDERR "Unrecognized enum constant \"$_\" ignored\n"; } } -elsif ($isgcc) { - # gcc creates this as a SHR,WRT psect in globals.c, but we - # don't see it in the perl.h scan, since it's only declared - # if DOINIT is #defined. Bleah. It's cheaper to just add - # it by hand than to add /Define=DOINIT to the preprocessing - # run and wade through all the extra junk. - $vars{"${embed}Error"}++; -} # Eventually, we'll check against existing copies here, so we can add new # symbols to an existing options file in an upwardly-compatible manner. diff --git a/vms/munchconfig.c b/vms/munchconfig.c index 58c7e7c..158de3c 100644 --- a/vms/munchconfig.c +++ b/vms/munchconfig.c @@ -47,10 +47,10 @@ main(int argc, char *argv[]) { FILE *ConfigSH, *Config_H; char LineBuffer[LINEBUFFERSIZE], *TempValue, *StartTilde, *EndTilde; - char SecondaryLineBuffer[LINEBUFFERSIZE]; + char SecondaryLineBuffer[LINEBUFFERSIZE], OutBuf[LINEBUFFERSIZE]; char TokenBuffer[TOKENBUFFERSIZE]; int LineBufferLength, TempLength, DummyVariable, LineBufferLoop; - int TokenBufferLoop, ConfigSubLoop, GotIt; + int TokenBufferLoop, ConfigSubLoop, GotIt, OutBufPos; Translate TildeSub[NUMTILDESUBS]; /* Holds the tilde (~FOO~) */ /* substitutions */ Translate ConfigSub[NUMCONFIGSUBS]; /* Holds the substitutions from */ @@ -197,19 +197,20 @@ main(int argc, char *argv[]) LineBufferLength--; } + OutBufPos = 0; /* Right. Go looking for $s. */ for(LineBufferLoop = 0; LineBufferLoop < LineBufferLength; LineBufferLoop++) { /* Did we find one? */ if ('$' != LineBuffer[LineBufferLoop]) { /* Nope, spit out the value */ - putchar(LineBuffer[LineBufferLoop]); + OutBuf[OutBufPos++] = LineBuffer[LineBufferLoop]; } else { /* Yes, we did. Is it escaped? */ if ((LineBufferLoop > 0) && ('\\' == LineBuffer[LineBufferLoop - 1])) { /* Yup. Spit it out */ - putchar(LineBuffer[LineBufferLoop]); + OutBuf[OutBufPos++] = LineBuffer[LineBufferLoop]; } else { /* Nope. Go grab us a token */ TokenBufferLoop = 0; @@ -238,8 +239,9 @@ main(int argc, char *argv[]) for(ConfigSubLoop = 0; ConfigSubLoop < ConfigSubCount; ConfigSubLoop++) { if (!strcmp(TokenBuffer, ConfigSub[ConfigSubLoop].Tag)) { - GotIt = 1; - printf("%s", ConfigSub[ConfigSubLoop].Value); + char *cp = ConfigSub[ConfigSubLoop].Value; + GotIt = 1; + while (*cp) OutBuf[OutBufPos++] = *(cp++); break; } } @@ -247,21 +249,49 @@ main(int argc, char *argv[]) /* Did we find something? If not, spit out what was in our */ /* buffer */ if (!GotIt) { - printf("$%s", TokenBuffer); + char *cp = TokenBuffer; + OutBuf[OutBufPos++] = '$'; + while (*cp) OutBuf[OutBufPos++] = *(cp++); } } else { /* Just a bare $. Spit it out */ - putchar('$'); + OutBuf[OutBufPos++] = '$'; } } } } - /* We're all done. Spit out an EOL */ - printf("\n"); - - + /* If we've created an #undef line, make sure we don't output anthing + * after the "#undef FOO" besides comments. We could do this as we + * go by recognizing the #undef as it goes by, and thus avoid another + * use of a fixed-length buffer, but this is simpler. + */ + if (!strncmp(OutBuf,"#undef",6)) { + char *cp = OutBuf; + int i, incomment = 0; + LineBufferLoop = 0; + OutBuf[OutBufPos] = '\0'; + for (i = 0; i <= 1; i++) { + while (!isspace(*cp)) LineBuffer[LineBufferLoop++] = *(cp++); + while ( isspace(*cp)) LineBuffer[LineBufferLoop++] = *(cp++); + } + while (*cp) { + while (isspace(*cp)) LineBuffer[LineBufferLoop++] = *(cp++); + if (!incomment && *cp == '/' && *(cp+1) == '*') incomment = 1; + while (*cp && !isspace(*cp)) { + if (incomment) LineBuffer[LineBufferLoop++] = *cp; + cp++; + } + if (incomment && *cp == '*' && *(cp+1) == '/') incomment = 0; + } + LineBuffer[LineBufferLoop] = '\0'; + puts(LineBuffer); + } + else { + OutBuf[OutBufPos] = '\0'; + puts(OutBuf); + } } /* Close the files */ diff --git a/vms/subconfigure.com b/vms/subconfigure.com index 5f0c6a8..039f4dd 100644 --- a/vms/subconfigure.com +++ b/vms/subconfigure.com @@ -1,4 +1,4 @@ -$! SUBCONFIGURE.COM - build a config.sh for VMS Perl. + $! SUBCONFIGURE.COM - build a config.sh for VMS Perl. $! $! Note for folks from other platforms changing things in here: $! Fancy changes (based on compiler capabilities or VMS version or @@ -30,6 +30,7 @@ $! C_Compiler_Invoke is the command needed to invoke the C compiler $! $! Set Dec_C_Version to something $ WRITE_RESULT := "WRITE SYS$OUTPUT ""%CONFIG-I-RESULT "" + " +$ echo = "Write Sys$Output " $ Dec_C_Version := "''Dec_C_Version'" $ Dec_C_Version = Dec_C_Version + 0 $ Vms_Ver := "''f$extract(1,3, f$getsyi(""version""))'" @@ -97,9 +98,9 @@ $ perl_cf_by="unknown" $ perl_ccdlflags="" $ perl_cccdlflags="" $ perl_mab="" -$ perl_drand01 = "random()" -$ perl_randseedtype = "unsigned int" -$ perl_seedfunc = "srand" +$ perl_drand01 = "drand48()" +$ perl_randseedtype = "long int" +$ perl_seedfunc = "srand48" $ perl_d_msg_ctrunc = "undef" $ perl_d_msg_dontroute = "undef" $ perl_d_msg_oob = "undef" @@ -449,8 +450,6 @@ $ THEN $ perl_arch = "''perl_arch'-thread" $ perl_archname = "''perl_archname'-thread" $ ELSE -$ perl_d_pthread_create_joinable = "undef" -$ perl_pthread_create_joinable = " " $ perl_d_old_pthread_create_joinable = "undef" $ perl_old_pthread_create_joinable = " " $ ENDIF @@ -1702,6 +1701,41 @@ $ perl_d_setvbuf="define" $ ENDIF $ WRITE_RESULT "d_setvbuf is ''perl_d_setvbuf'" $! +$! Check for setenv +$! +$ OS +$ WS "#ifdef __DECC +$ WS "#include +$ WS "#endif +$ WS "#include +$ WS "int main() +$ WS "{" +$ WS "setenv(""FOO"", ""BAR"", 0); +$ WS "exit(0); +$ WS "}" +$ CS +$ DEFINE SYS$ERROR _NLA0: +$ DEFINE SYS$OUTPUT _NLA0: +$ on error then continue +$ on warning then continue +$ 'Checkcc' temp +$ If (Needs_Opt.eqs."Yes") +$ THEN +$ link temp,temp/opt +$ else +$ link temp +$ endif +$ teststatus = f$extract(9,1,$status) +$ DEASSIGN SYS$OUTPUT +$ DEASSIGN SYS$ERROR +$ if (teststatus.nes."1") +$ THEN +$ perl_d_setenv="undef" +$ ELSE +$ perl_d_setenv="define" +$ ENDIF +$ WRITE_RESULT "d_setenv is ''perl_d_setenv'" +$! $! Check for $! $ if ("''Has_Dec_C_Sockets'".eqs."T").or.("''Has_Socketshr'".eqs."T") @@ -2974,6 +3008,7 @@ $ WC "d_longlong='" + perl_d_longlong + "'" $ WC "longlongsize='" + perl_longlongsize + "'" $ WC "d_mkstemp='" + perl_d_mkstemp + "'" $ WC "d_setvbuf='" + perl_d_setvbuf + "'" +$ WC "d_setenv='" + perl_d_setenv + "'" $ WC "d_endhent='" + perl_d_endhent + "'" $ WC "d_endnent='" + perl_d_endsent + "'" $ WC "d_endpent='" + perl_d_endpent + "'" @@ -3068,8 +3103,6 @@ $ WC "d_ftell64='" + perl_d_ftell64 + "'" $ WC "d_ftello64='" + perl_d_ftello64 + "'" $ WC "d_tmpfile64='" + perl_d_tmpfile64 + "'" $ WC "d_drand48proto='" + perl_d_drand48proto + "'" -$ WC "d_pthread_create_joinable='" + perl_d_pthread_create_joinable + "'" -$ WC "pthread_create_joinable='" + perl_pthread_create_joinable + "'" $ WC "d_old_pthread_create_joinable='" + perl_d_old_pthread_create_joinable + "'" $ WC "old_pthread_create_joinable='" + perl_old_pthread_create_joinable + "'" $ WC "drand01='" + perl_drand01 + "'" @@ -3117,7 +3150,8 @@ $ delete munchconfig.opt;* $ else $ link munchconfig.obj $ endif -$ WRITE_RESULT "Writing config.h" +$ echo "" +$ echo "Writing config.h" $ ! $ ! we need an fdl file $ CREATE [-]CONFIG.FDL @@ -3131,10 +3165,6 @@ $ if use_debugging_perl.eqs."Y" $ THEN $ WRITE CONFIG "#define DEBUGGING" $ ENDIF -$ if preload_env.eqs."Y" -$ THEN -$ WRITE CONFIG "#define PRIME_ENV_AT_STARTUP" -$ ENDIF $ if use_two_pot_malloc.eqs."Y" $ THEN $ WRITE CONFIG "#define TWO_POT_OPTIMIZE" @@ -3164,6 +3194,21 @@ $ if "''Has_Socketshr'".eqs."T" $ THEN $ WRITE CONFIG "#define VMS_DO_SOCKETS" $ ENDIF +$! This is VMS-specific for now +$ WRITE CONFIG "#''perl_d_setenv' HAS_SETENV" +$ if d_alwdeftype.eqs."Y" +$ THEN +$ WRITE CONFIG "#define SECURE_INTERNAL_GETENV" +$ ELSE +$ WRITE CONFIG "#undef SECURE_INTERNAL_GETENV" +$ ENDIF +$ if d_secintgenv.eqs."Y" +$ THEN +$ WRITE CONFIG "#define ALWAYS_DEFTYPES" +$ ELSE +$ WRITE CONFIG "#undef ALWAYS_DEFTYPES" +$ ENDIF +$ WRITE CONFIG "#define HAS_ENVGETENV" $ CLOSE CONFIG $! $! Now build the normal config.h @@ -3222,10 +3267,65 @@ $ ARCH_TYPE = "ARCH-TYPE=__AXP__" $ ELSE $ ARCH_TYPE = "ARCH-TYPE=__VAX__" $ ENDIF -$ WRITE_RESULT "Writing DESCRIP.MMS" +$ echo "Writing DESCRIP.MMS" $!set ver $ define/user sys$output [-]descrip.mms $ mcr []munchconfig [-]config.sh descrip_mms.template "''DECC_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" "''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'" "''MALLOC_REPLACE'" "''Thread_Live_Dangerously'" "PV=''LocalPerlVer'" +$ echo "Extracting Build_Ext.Com" +$ Create Sys$Disk:[-]Build_Ext.Com +$ Deck/Dollar="$EndOfTpl$" +$!++ Build_Ext.Com +$! NOTE: This files is extracted as part of the VMS configuration process. +$! Any changes made to it directly will be lost. If you need to make any +$! changes, please edit the template in [.vms]SubConfigure.Com instead. +$ def = F$Environment("Default") +$ exts1 = F$Edit(p1,"Compress") +$ p2 = F$Edit(p2,"Upcase,Compress,Trim") +$ If F$Locate("MCR ",p2).eq.0 Then p2 = F$Extract(3,255,p2) +$ miniperl = "$" + F$Search(F$Parse(p2,".Exe")) +$ mmk = p3 +$ targ = F$Edit(p4,"Lowercase") +$ i = 0 +$ next_ext: +$ ext = F$Element(i," ",p1) +$ If ext .eqs. " " Then Goto done +$ Define/User Perl_Env_Tables CLISYM_LOCAL +$ miniperl + ($extdir = $ENV{'ext'}) =~ s/::/./g; + if ($extdir =~ /^vms/i) { $extdir =~ s/vms/.vms.ext/i; } + else { $extdir = ".ext.$extdir"; } + ($ENV{'extdir'} = "[$extdir]"); + ($ENV{'up'} = ('-') x ($extdir =~ tr/././)); +$ Set Default &extdir +$ redesc = 0 +$ If F$Locate("clean",targ) .eqs. F$Length(targ) +$ Then +$ Write Sys$Output "Building ''ext' . . ." +$ On Error Then Goto done +$ If F$Search("Descrip.MMS") .eqs. "" +$ Then +$ redesc = 1 +$ Else +$ If F$CvTime(F$File("Descrip.MMS","rdt")) .lts. - + F$CvTime(F$File("Makefile.PL","rdt")) Then redesc = 1 +$ EndIf +$ Else +$ Write Sys$Output "''targ'ing ''ext' . . ." +$ On Error Then Continue +$ EndIf +$ If redesc Then - + miniperl "-I[''up'.lib]" Makefile.PL "INST_LIB=[''up'.lib]" "INST_ARCHLIB=[''up'.lib]" +$ mmk 'targ' +$ i = i + 1 +$ Set Def &def +$ Goto next_ext +$ done: +$ sts = $Status +$ Set Def &def +$ Exit sts +$!-- Build_Ext.Com +$EndOfTpl$ +$ $! set nover $! $! Clean up after ourselves