X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=aca42de20b89a6af610e611cd066dbed276ad46d;hb=98f185c877b1e36d5243b8e4023f75e5ff587c20;hp=7e2829339d429073d7b7a9a1aa9fa51eebe1bab4;hpb=a12fb9119e8da180ab3c5a7359cb81660e41b805;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index 7e28293..aca42de 100644 --- a/configure.com +++ b/configure.com @@ -39,17 +39,18 @@ $ cat = "type" $ gcc_symbol = "gcc" $ ans = "" $ macros = "" +$ use_vmsdebug_perl = "N" $ use_debugging_perl = "Y" $ C_Compiler_Replace = "CC=" $ 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 +973,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 +1563,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 +1587,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 +1604,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 @@ -1670,6 +1671,24 @@ $ IF ans.eqs."socketshr" then has_socketshr = "T" $ endif $! $! +$! Ask if they want to build with VMS_DEBUG perl +$ echo "Perl can be built to run under the VMS debugger." +$ echo "You should only select this option if you are debugging" +$ echo "perl itself. This can be a useful feature if you are " +$ echo "embedding perl in a program." +$ echo "" +$ dflt = "N" +$ rp = "Build a VMS-DEBUG version of Perl? [''dflt'] " +$ GOSUB myread +$ if ans.eqs."" then ans = dflt +$ if (f$extract(0, 1, "''ans'").eqs."Y").or.(f$extract(0, 1, "''ans'").eqs."y") +$ THEN +$ use_vmsdebug_perl = "Y" +$ macros = macros + """__DEBUG__=1""," +$ ELSE +$ use_vmsdebug_perl = "N" +$ ENDIF +$! $! Ask if they want to build with MULTIPLICITY $ echo "The perl interpreter engine can be built in a way that makes it $ echo "possible for a program that embeds perl into it (and yep, you can @@ -1727,6 +1746,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 +1837,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 Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File" $ if Using_Dec_C.eqs."Yes" $ THEN $ dflt = dflt + " POSIX" @@ -1929,12 +1986,38 @@ $! $! 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 $ SET DEFAULT 'dflt $! +$! Warn of dangerous logical names +$! +$Bad_logical: SUBROUTINE +$ IF f$trnlnm(p1) .nes. "" +$ THEN +$ IF f$search("config.msg") .nes. "" +$ THEN +$ OPEN/APPEND CONFIG config.msg +$ ELSE +$ OPEN/WRITE CONFIG config.msg +$ ENDIF +$ WRITE CONFIG "Logical name ''p1' found in environment as " + f$trnlnm(p1) +$ WRITE CONFIG " deassign before building ''package'" +$ CLOSE CONFIG +$ ENDIF +$ EXIT +$ ENDSUBROUTINE ! Bad_logical +$ echo "" +$ echo4 "%Config-I-VMS, Checking for dangerous pre extant logical names." +$ CALL Bad_logical "TMP" +$ CALL Bad_logical "LIB" +$ CALL Bad_logical "T" +$ CALL Bad_logical "FOO" +$ CALL Bad_logical "EXT" +$ IF f$search("config.msg") .eqs. "" THEN echo "OK." +$! $! %Config-I-VMS, write perl_setup.com here $! $ echo "" @@ -1950,11 +2033,25 @@ $ ELSE $ WRITE CONFIG "$! This perl configured & administered by ''perladmin'" $ ENDIF $ WRITE CONFIG "$!" +$ prefix = prefix - "000000." $ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN - prefix = prefix - "]" + ".]" $ WRITE CONFIG "$ define/translation=concealed Perl_Root ''prefix'" -$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl" -$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr.Exe" +$ write config "$ ext = "".exe""" +$ if sharedperl .eqs. "Y" +$ then +$ write config "$ if f$getsyi(""ARCH_NAME"") .nes. ""VAX"" then ext = "".AXE""" +$ endif +$ IF use_vmsdebug_perl .eqs. "Y" +$ then +$ WRITE CONFIG "$ dbgperl :== $Perl_Root:[000000]dbgPerl'ext'" +$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]ndbgPerl'ext'" +$ WRITE CONFIG "$ define dbgPerlShr Perl_Root:[000000]dbgPerlShr'ext'" +$ else +$ WRITE CONFIG "$ perl :== $Perl_Root:[000000]Perl'ext'" +$ WRITE CONFIG "$ define PerlShr Perl_Root:[000000]PerlShr'ext'" +$ endif +$! $ IF (tzneedset) $ THEN $ WRITE CONFIG "$ define SYS$TIMEZONE_DIFFERENTIAL ''tzd'" @@ -2007,6 +2104,15 @@ $ ENDIF $ echo4 " ''make'''makefile'", macros $ echo4 "" $! +$ IF ( F$SEARCH("config.msg").NES."" ) +$ THEN +$ echo "Hmm. I also noted the following information while running:" +$ echo "" +$ type config.msg +$ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) config.msg +$ DELETE/NOLOG/NOCONFIRM config.msg; +$ ENDIF +$! $Clean_up: $ IF (silent) $ THEN