X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/1be1b388c18674b89d106c333a2dd62d9b736e29..c20941f7d93435a213fd8cbe392fbc0d6984cb73:/configure.com diff --git a/configure.com b/configure.com index e46cab6..0fce752 100644 --- a/configure.com +++ b/configure.com @@ -61,7 +61,9 @@ $ use_pack_malloc = "N" $ use_debugmalloc = "N" $ ccflags = "" $ static_ext = "" +$ dynamic_ext = "" $ nonxs_ext = "" +$ nonxs_ext2 = "" $ vms_default_directory_name = F$ENVIRONMENT("DEFAULT") $ max_allowed_dir_depth = 3 ! e.g. [A.B.PERLxxx] not [A.B.C.PERLxxx] $! max_allowed_dir_depth = 2 ! e.g. [A.PERLxxx] not [A.B.PERLxxx] @@ -368,11 +370,20 @@ $! $Shut_up: $ IF F$Mode() .eqs. "BATCH" $ THEN -$ STDOUT = F$PARSE(F$GETQUI("DISPLAY_ENTRY", "JOB_NAME"), - - F$GETQUI("DISPLAY_ENTRY", "LOG_SPECIFICATION"), ".LOG") -$ WRITE SYS$OUTPUT "Warning: Executing in batch mode. To avoid file locking conflicts," -$ WRITE SYS$OUTPUT "output intended for SYS$OUTPUT will be sent to a new version" +$ x = F$GETQUI("CANCEL_OPERATION") ! clear the deck +$ x = "THIS_JOB" +$ bproc_queue = f$getqui("DISPLAY_QUEUE","QUEUE_NAME","*",x) +$ bproc_entry = f$getqui("DISPLAY_JOB","ENTRY_NUMBER",,x) +$ bproc_name = f$getqui("DISPLAY_JOB","JOB_NAME",,x) +$ bproc_log_spec = f$getqui("DISPLAY_JOB","LOG_SPECIFICATION",,x) +$ STDOUT = F$PARSE(bproc_name, bproc_log_spec, ".LOG") +$ WRITE SYS$OUTPUT "Writing output of entry ''bproc_entry' in queue ''bproc_queue' to a new version of: " $ WRITE SYS$OUTPUT STDOUT +$ DELETE_/SYMBOL x +$ DELETE_/SYMBOL bproc_queue +$ DELETE_/SYMBOL bproc_entry +$ DELETE_/SYMBOL bproc_name +$ DELETE_/SYMBOL bproc_log_spec $ ELSE $ STDOUT = F$TRNLNM("SYS$OUTPUT") $ ENDIF @@ -949,7 +960,7 @@ $ delete/symbol val $ delete/symbol dsym $ if f$type(usedebugging_perl) .nes. "" $ then -$ useperldebug = usedebugging_perl +$ DEBUGGING = usedebugging_perl $ delete/symbol usedebugging_perl $ endif $! @@ -1408,9 +1419,10 @@ $ SET NOON $ OPEN/READ PATCH [-].patch $ READ PATCH line $ CLOSE PATCH -$ tmp = F$EDIT(line,"COLLAPSE") +$ tmp = F$EDIT(line,"TRIM,COMPRESS") +$ IF F$ELEMENT(3, " ", tmp) .NES. "" THEN tmp = F$ELEMENT(3, " ", tmp) $ SET ON -$ IF tmp .GT. perl_patchlevel then perl_patchlevel = tmp +$ IF tmp .NES. "" THEN perl_patchlevel = tmp $ ENDIF $! $ version_patchlevel_string = "version ''patchlevel' subversion ''subversion'" @@ -2301,10 +2313,10 @@ $ echo "enables the -D switch, at the cost of some performance. It" $ echo "was mandatory on perl 5.005 and before on VMS, but is now" $ echo "optional. If you do not generally use it you should probably" $ echo "leave this off and gain a bit of extra speed." -$ bool_dflt = "y" -$ if f$type(useperldebug) .nes. "" +$ bool_dflt = "n" +$ if f$type(DEBUGGING) .nes. "" $ then -$ if f$extract(0,1,f$edit(useperldebug,"collapse,upcase")).eqs."N" .or. useperldebug .eqs. "undef" then bool_dflt="n" +$ if f$extract(0,1,f$edit(DEBUGGING,"collapse,upcase")).eqs."Y" .or. DEBUGGING .eqs. "define" then bool_dflt="y" $ endif $ rp = "Build a DEBUGGING version of Perl? [''bool_dflt'] " $ GOSUB myread @@ -2716,25 +2728,102 @@ $ OPEN/READ CONFIG 'manifestfound' $ext_loop: $ READ/END_OF_FILE=end_ext/ERROR=end_ext CONFIG line $ IF F$EXTRACT(0,4,line) .NES. "ext/" .AND. - - F$EXTRACT(0,8,line) .NES. "vms/ext/" THEN goto ext_loop + F$EXTRACT(0,5,line) .NES. "dist/".AND. - + F$EXTRACT(0,5,line) .NES. "cpan/" THEN goto ext_loop $ line = F$EDIT(line,"COMPRESS") $ line = F$ELEMENT(0," ",line) -$ line_len = F$LENGTH(line) -$ IF F$EXTRACT(line_len - 12,12,line) .NES. "/Makefile.PL" THEN goto ext_loop -$ IF F$EXTRACT(0,4,line) .EQS. "ext/" THEN - - xxx = F$EXTRACT(4,line_len - 16,line) +$ IF F$EXTRACT(0,4,line) .EQS. "ext/" +$ THEN +$ xxx = F$ELEMENT(1,"/",line) +$ IF F$SEARCH("[-.ext]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop +$ ENDIF +$ IF F$EXTRACT(0,5,line) .EQS. "dist/" +$ THEN +$ xxx = F$ELEMENT(1,"/",line) +$ IF F$SEARCH("[-.dist]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop +$ ENDIF +$ IF F$EXTRACT(0,5,line) .EQS. "cpan/" +$ THEN +$ xxx = F$ELEMENT(1,"/",line) +$ IF F$SEARCH("[-.cpan]''xxx'.DIR;1") .EQS. "" THEN GOTO ext_loop +$ ENDIF $ IF xxx .EQS. "DynaLoader" THEN goto ext_loop ! omit -$ IF xxx .EQS. "SDBM_File/sdbm" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "Devel/PPPort/harness" THEN goto ext_loop ! sub extension - omit -$ IF F$EXTRACT(0,7,xxx) .EQS. "Encode/" THEN goto ext_loop ! sub extension - omit -$ IF xxx .EQS. "B/C" THEN goto ext_loop ! sub extension - omit -$ IF F$EXTRACT(0,8,line) .EQS. "vms/ext/" THEN - - xxx = "VMS/" + F$EXTRACT(8,line_len - 20,line) -$ known_extensions = known_extensions + " ''xxx'" +$! +$! (extspec = xxx) =~ tr!-!/! +$ extspec = "" +$ idx = 0 +$ extension_dir_name = xxx +$ replace_dash_with_slash: +$ before = F$ELEMENT(idx, "-", xxx) +$ IF before .EQS. "-" THEN goto end_replace_dash_with_slash +$ IF extspec .NES. "" +$ THEN +$ extspec = extspec + "/" +$ ENDIF +$ extspec = extspec + before +$ idx = idx + 1 +$ goto replace_dash_with_slash +$ +$ end_replace_dash_with_slash: +$ +$ xxx = known_extensions +$ gosub may_already_have_extension +$ IF $STATUS .EQ. 1 +$ THEN +$ xxx = nonxs_ext +$ gosub may_already_have_extension +$ ENDIF +$ IF $STATUS .EQ. 1 +$ THEN +$ xxx = nonxs_ext2 +$ gosub may_already_have_extension +$ ENDIF +$ IF $STATUS .NE. 1 THEN goto ext_loop +$ goto found_new_extension +$! +$ may_already_have_extension: +$ idx = F$LOCATE(extspec, xxx) +$ extlen = F$LENGTH(xxx) +$ IF idx .EQ. extlen THEN return 1 ! didn't find it +$! But "Flirble" may just be part of "Acme-Flirble". This is not +$! bullet-proof because we may only be looking at one chunk of the +$! existing extension list. +$ IF idx .GT. 0 .AND. F$EXTRACT(idx - 1, 1, xxx) .NES. " " +$ THEN +$ xxx = F$EXTRACT(idx + F$LENGTH(extspec) + 1, extlen, xxx) +$ GOTO may_already_have_extension +$ ENDIF +$! But "Foo" may just be part of "Foo-Bar" so check for equality. +$ xxx = F$EXTRACT(idx, extlen - idx, xxx) +$ IF F$ELEMENT(0, " ", xxx) .EQS. extspec +$ THEN +$ RETURN 3 +$ ELSE +$ xxx = F$EXTRACT(F$LENGTH(extspec) + 1, extlen, xxx) + GOTO may_already_have_extension +$ ENDIF +$! +$ found_new_extension: +$ IF F$SEARCH("[-.ext.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.dist.''extension_dir_name']*.xs") .EQS. "" .AND. F$SEARCH("[-.cpan.''extension_dir_name']*.xs") .EQS. "" +$ THEN +$! Bit if a hack to get around the 1K buffer on older systems. +$ IF F$LENGTH(nonxs_ext) .GT. 950 +$ THEN +$ nonxs_ext2 = nonxs_ext2 + " ''extspec'" +$ ELSE +$ nonxs_ext = nonxs_ext + " ''extspec'" +$ ENDIF +$ ELSE +$ known_extensions = known_extensions + " ''extspec'" +$ ENDIF $ goto ext_loop $end_ext: $ close CONFIG $ DELETE/SYMBOL xxx +$ DELETE/SYMBOL idx +$ DELETE/SYMBOL extspec +$ DELETE/SYMBOL extlen +$ DELETE/SYMBOL extension_dir_name $ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS") $ dflt = known_extensions $ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX" @@ -2752,15 +2841,12 @@ $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets $ THEN $ dflt = dflt - "Socket" ! optional on VMS $ ENDIF -$ ! Build this one only for threads without ithreads -$ IF F$TYPE(useithreads) .EQS. "" .OR. .NOT. use_threads -$ THEN -$ dflt = dflt - "Thread" -$ ELSE -$ IF useithreads .OR. useithreads .EQS. "define" THEN dflt = dflt - "Thread" -$ ENDIF -$ dflt = dflt - "Win32API/File" - "Win32CORE" - "Win32" ! need Dave Cutler's other project +$ dflt = dflt - "Win32API/File" - "Win32" ! need Dave Cutler's other project +$ nonxs_ext = nonxs_ext - "Win32CORE" +$ nonxs_ext2 = nonxs_ext2 - "Win32CORE" $ dflt = F$EDIT(dflt,"TRIM,COMPRESS") +$ nonxs_ext = F$EDIT(nonxs_ext,"TRIM,COMPRESS") +$ nonxs_ext2 = F$EDIT(nonxs_ext2,"TRIM,COMPRESS") $! $! Ask for their default list of extensions to build $ echo "" @@ -2772,7 +2858,7 @@ $ echo "" $ echo "Which modules do you want to build into perl?" $ rp = "[''dflt'] " $ GOSUB myread -$ extensions = F$EDIT(ans,"TRIM,COMPRESS") +$ dynamic_ext = F$EDIT(ans,"TRIM,COMPRESS") $! $! %Config-I-VMS, determine build/make utility here (make gmake mmk mms) $ echo "" @@ -5784,6 +5870,7 @@ $ WC "ccversion='" + ccversion + "'" $ WC "cf_by='" + cf_by + "'" $ WC "cf_email='" + cf_email + "'" $ WC "cf_time='" + cf_time + "'" +$ WC "charbits='8'" $ WC "config_args='" + config_args + "'" $ WC "config_sh='" + config_sh + "'" $ WC "cpp_stuff='" + cpp_stuff + "'" @@ -5820,12 +5907,15 @@ $ WC "d_asctime64='undef'" $ WC "d_atolf='" + d_atolf + "'" $ WC "d_atoll='" + d_atoll + "'" $ WC "d_attribute_format='" + d_attribut + "'" +$ WC "d_attribute_deprecated='undef'" $ WC "d_attribute_malloc='undef'" $ WC "d_attribute_nonnull='undef'" $ WC "d_attribute_noreturn='undef'" $ WC "d_attribute_pure='undef'" $ WC "d_attribute_unused='undef'" $ WC "d_attribute_warn_unused_result='undef'" +$ WC "d_prctl='undef'" +$ WC "d_prctl_set_name='undef'" $ WC "d_printf_format_null='undef'" $ WC "d_bcmp='" + d_bcmp + "'" $ WC "d_bcopy='" + d_bcopy + "'" @@ -5904,6 +5994,7 @@ $ WC "d_ftello='" + d_ftello + "'" $ WC "d_futimes='undef'" $ WC "d_gdbmndbm_h_uses_prototypes='undef'" $ WC "d_gdbm_ndbm_h_uses_prototypes='undef'" +$ WC "d_getaddrinfo='undef'" $ WC "d_getcwd='define'" $ WC "d_getespwnam='undef'" $ WC "d_getfsstat='undef'" @@ -5918,6 +6009,7 @@ $ WC "d_getitimer='" + d_getitimer + "'" $ WC "d_getlogin='define'" $ WC "d_getmnt='undef'" $ WC "d_getmntent='undef'" +$ WC "d_getnameinfo='undef'" $ WC "d_getnbyaddr='" + d_getnbyaddr + "'" $ WC "d_getnbyname='" + d_getnbyname + "'" $ WC "d_getnent='" + d_getnent + "'" @@ -5949,6 +6041,8 @@ $ WC "d_ilogbl='undef'" $ WC "d_inc_version_list='undef'" $ WC "d_index='" + d_index + "'" $ WC "d_inetaton='undef'" +$ WC "d_inetntop='undef'" +$ WC "d_inetpton='undef'" $ WC "d_int64_t='" + d_int64_t + "'" $ WC "d_isascii='define'" $ WC "d_isfinite='undef'" @@ -6199,9 +6293,9 @@ $ WC "doublesize='" + doublesize + "'" $ WC "drand01='" + drand01 + "'" $ WC "dtrace='" + "'" $! -$! The extensions symbol may be quite long +$! The dynamic_ext symbol may be quite long $! -$ tmp = "dynamic_ext='" + extensions + "'" +$ tmp = "dynamic_ext='" + dynamic_ext + "'" $ WC/symbol tmp $ DELETE/SYMBOL tmp $ WC "eagain=' '" @@ -6210,11 +6304,9 @@ $ WC "embedmymalloc='" + usemymalloc + "'" $ WC "eunicefix=':'" $ WC "exe_ext='" + exe_ext + "'" $! -$! The extensions symbol may be quite long +$! The extensions symbols may be quite long $! -$ tmp = "extensions='" + extensions + "'" -$ WC/symbol tmp -$ DELETE/SYMBOL tmp +$ WC/symbol "extensions='", nonxs_ext, " ", nonxs_ext2, " ", dynamic_ext, "'" $ WC "fflushNULL='define'" $ WC "fflushall='undef'" $ WC "fpostype='fpos_t'" @@ -6383,7 +6475,7 @@ $ WC "netdb_hlen_type='" + netdb_hlen_type + "'" $ WC "netdb_host_type='" + netdb_host_type + "'" $ WC "netdb_name_type='" + netdb_name_type + "'" $ WC "netdb_net_type='" + netdb_net_type + "'" -$ WC "nonxs_ext='" + nonxs_ext + "'" +$ WC/symbol "nonxs_ext='", nonxs_ext, " ", nonxs_ext2, "'" $ WC "nveformat='" + nveformat + "'" $ WC "nvfformat='" + nvfformat + "'" $ WC "nvgformat='" + nvgformat + "'" @@ -6425,9 +6517,9 @@ $ WC "randseedtype='" + randseedtype + "'" $ WC "ranlib='" + "'" $ WC "rd_nodata=' '" $ WC "revision='" + revision + "'" -$ WC "sGMTIME_max='2147483647'" +$ WC "sGMTIME_max='4294967295'" $ WC "sGMTIME_min='0'" -$ WC "sLOCALTIME_max='2147483647'" +$ WC "sLOCALTIME_max='4294967295'" $ WC "sLOCALTIME_min='0'" $ WC "sPRId64='" + sPRId64 + "'" $ WC "sPRIEldbl='" + sPRIEUldbl + "'" @@ -6520,6 +6612,7 @@ $ WC "usecasesensitive='" + be_case_sensitive + "'" ! VMS-specific $ WC "usedebugging_perl='"+use_debugging_perl+"'" $ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific $ WC "usecrosscompile='undef'" +$ WC "usedevel='" + usedevel + "'" $ WC "usedl='" + usedl + "'" $ WC "usedtrace='undef'" $ WC "usefaststdio='" + usefaststdio + "'" @@ -6551,6 +6644,7 @@ $ WC "uvuformat='" + uvuformat + "'" $ WC "uvxformat='" + uvxformat + "'" $ WC "uvXUformat='" + uvXUformat + "'" $ WC "vendorarch='" + "'" +$ WC "vaproto='define'" $ WC "vendorarchexp='" + "'" $ WC "vendorbin='" + "'" $ WC "vendorbinexp='" + "'" @@ -6885,80 +6979,6 @@ $! Clean up after ourselves $ DELETE/NOLOG/NOCONFIRM []munchconfig.exe; $ DELETE/NOLOG/NOCONFIRM []extra_subs.txt; $! -$ echo4 "Extracting make_ext.com (without variable substitutions)" -$ Create Sys$Disk:[-]make_ext.com -$ Deck/Dollar="$EndOfTpl$" -$!++ make_ext.com -$! NOTE: This file 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 Configure.Com instead. -$ mydefault = F$Environment("Default") -$! p1 - how to invoke miniperl (passed in from descrip.mms) -$ p1 = F$Edit(p1,"Upcase,Compress,Trim") -$ If F$Locate("MCR ",p1).eq.0 Then p1 = F$Extract(3,255,p1) -$ miniperl = "$" + F$Search(F$Parse(p1,".Exe")) -$! p2 - how to invoke local make utility (passed in from descrip.mms) -$ makeutil = p2 -$ if f$type('p2') .nes. "" then makeutil = 'p2' -$! p3 - make target (passed in from descrip.mms) -$ targ = F$Edit(p3,"Lowercase") -$ sts = 1 -$ extensions = "" -$ open/read CONFIG config.sh -$ find_ext_loop: -$ read/end=end_ext_loop CONFIG line -$ if (f$extract(0,12,line) .NES. "extensions='") -$ then goto find_ext_loop -$ else extensions = f$extract(12,f$length(line),line) - "'" -$ endif -$ end_ext_loop: -$ close CONFIG -$ extensions = f$edit(extensions,"TRIM,COMPRESS") -$ i = 0 -$ next_ext: -$ ext = f$element(i," ",extensions) -$ If ext .eqs. " " .or. ext .eqs. "" Then Goto done -$ Define/User_mode Perl_Env_Tables CLISYM_LOCAL -$ miniperl -$ deck - ($extdir = $ENV{'ext'}) =~ s/::/./g; - $extdir =~ s#/#.#g; - if ($extdir =~ /^vms/i) { $extdir =~ s/vms/.vms.ext/i; } - else { $extdir = ".ext.$extdir"; } - ($ENV{'extdir'} = "[$extdir]"); - ($ENV{'up'} = ('-') x ($extdir =~ tr/././)); -$ eod -$ Set Default &extdir -$ redesc = 0 -$ If F$Locate("clean",targ) .eqs. F$Length(targ) -$ Then -$ Write Sys$Output "" -$ Write Sys$Output " Making ''ext' (dynamic)" -$ 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]" "PERL_CORE=1" -$ makeutil 'targ' -$ i = i + 1 -$ Set Def &mydefault -$ Goto next_ext -$ done: -$ sts = $Status -$ Set Def &mydefault -$ Exit sts -$!-- make_ext.com -$EndOfTpl$ -$! $! Note that the /key qualifier to search, as in: $! search README.* "=head"/key=(position=1)/window=0/output=extra.pods $! is not supported on VMS V5.5-2, hence not used in extra_pods.com. @@ -7185,7 +7205,7 @@ $ WRITE CONFIG "$ cpan2dist == """ + perl_setup_perl + " ''vms_prefix':[utils]c $! FIXME: "-" is an operator and illegal in a symbol name -- cpanp-run-perl can't work $!$ WRITE CONFIG "$ cpanp-run-perl == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp-run-perl.com""" $ WRITE CONFIG "$ cpanp == """ + perl_setup_perl + " ''vms_prefix':[utils]cpanp.com""" -$ IF F$LOCATE("Devel::DProf",extensions) .LT. F$LENGTH(extensions) +$ IF F$LOCATE("Devel::DProf",dynamic_ext) .LT. F$LENGTH(dynamic_ext) $ THEN $ WRITE CONFIG "$ dprofpp == """ + perl_setup_perl + " ''vms_prefix':[utils]dprofpp.com""" $ ENDIF