X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=547e5d4a5564063741eaaae4b6b8fb136d193f3d;hb=c568a9d1864be7bd340b9735735b6a68182a27fe;hp=5dd96aeae37a05c33eb2b78fb41ec63a1c47e211;hpb=ddcbaa1cece03b86d18feae2329582fa255e94be;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index 5dd96ae..547e5d4 100644 --- a/configure.com +++ b/configure.com @@ -49,10 +49,13 @@ $ builder = "MMK" $ use_vmsdebug_perl = "n" $ use64bitall = "n" $ use64bitint = "n" -$ uselargefiles = "n" +$ uselongdouble = "n" +$ uselargefiles = "y" +$ usestdstat = "n" $ usesitecustomize = "n" $ C_Compiler_Replace = "CC=" -$ Thread_Live_Dangerously = "MT=" +$ thread_upcalls = "MTU=" +$ thread_kernel = "MTK=" $ use_two_pot_malloc = "N" $ use_pack_malloc = "N" $ use_debugmalloc = "N" @@ -541,8 +544,9 @@ $ THEN $! 17-DEC-1999 Improved to turn "[.foo.bar]baz.c_buz" into $! "[.foo.bar]baz_c.buz" to cover unzipped archives and put $! "[.foo.bar]baz.c_buz,baz_c.buz" into missing list if neither is found. -$ basename[f$locate(".",basename),1] := _ -$ dot_ele = F$ELEMENT(dots - 1,"_",basename) +$ dotloc = f$locate(".",basename) +$ basename[dotloc,1] := "_" +$ dot_ele = F$ELEMENT(dots - 1,"_",f$extract(dotloc,f$length(basename),basename)) $ basename = - f$extract(0,f$length(basename)-(f$length(dot_ele)+1),basename) - + "." + dot_ele @@ -849,7 +853,6 @@ $ ENDIF $ ENDIF !(needman .EQS. "true") $! $!: see if sh knows # comments !sfn -$ sharpbang = "$ " $!: figure out how to guarantee sh startup !sfn $!: find out where common programs are !sfn $!loclist="awk/cat/comm/cp/echo/expr/find/grep/ln/ls/mkdir/rm/sed/sort/touch/tr/uniq" @@ -865,7 +868,7 @@ $! $!: Try to determine whether config.sh was made on this system $!: Get old answers from old config file if Configure was run on the $!: same system, otherwise use the hints. -$ config_sh_es = "''config_sh'/[-]config.sh/[-.vms]config.vms/" +$ config_sh_es = "''config_sh'/[-]config.sh/" $ i = 0 $ max = 3 $Config_sh_look: @@ -877,7 +880,6 @@ $ configshfound = F$SEARCH(config_sh) $ IF (configshfound.NES."") THEN GOTO Config_sh_found $ ENDIF $ IF (i.LT.max) THEN GOTO Config_sh_look -$! genconfig.pl has "osname='VMS'" $ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE") $ IF (configshfound.EQS."") $ THEN @@ -901,9 +903,9 @@ $! $ config_symbols0 ="|archlib|archlibexp|bin|binexp|builddir|cf_email|config_sh|installarchlib|installbin|installman1dir|installman3dir|" $ config_symbols1 ="|installprivlib|installscript|installsitearch|installsitelib|most|oldarchlib|oldarchlibexp|osname|pager|perl_symbol|perl_verb|" $ config_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|try_cxx|use64bitall|use64bitint|" -$ config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|usemultiplicity|usemymalloc|usedebugging_perl|useperlio|usesecurelog|" -$ config_symbols4 ="|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|" -$ config_symbols5 ="|buildmake|builder|" +$ config_symbols3 ="|usecasesensitive|usedefaulttypes|usedevel|useieee|useithreads|uselongdouble|usemultiplicity|usemymalloc|usedebugging_perl|" +$ config_symbols4 ="|useperlio|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|" +$ config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthread" $! $ open/read CONFIG 'config_sh' $ rd_conf_loop: @@ -1123,7 +1125,6 @@ $ tz = f$fao("UTC!AS!UL:!2ZL",signothetime,tzhour,tzminrem) $ cf_time = "''wkday' ''mon' ''mday' ''hour':''min':''sec' ''tz' ''year'" $! $!: determine the architecture name -$! genconfig.pl has either archname='VMS_AXP' or 'VMS_VAX' $! Note that DCL in VMS V5.4 does not have F$GETSYI("ARCH_NAME") $! but does have F$GETSYI("HW_MODEL"). $! Please try to use either archname .EQS. "VMS_VAX" or archname .EQS. @@ -1194,6 +1195,9 @@ $ prefixbase = prefix - "]" $! Add _ROOT to make install PERL_ROOT differ from build directory. $ prefix = prefixbase + "_ROOT.]" $ ENDIF +$ ! more redundant scrubbing of values +$ prefix = prefix - "000000." +$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" $ src = prefix $!: determine root of directory hierarchy where package will be installed. $ dflt = prefix @@ -1366,6 +1370,20 @@ $ perl_patchlevel = F$ELEMENT(1,"""",line) $ perl_patchlevel = perl_patchlevel - "DEVEL" $ got_perl_patchlevel = "true" $ ENDIF +$ IF ((F$LOCATE("""SMOKE",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel)) +$ THEN +$ line = F$EDIT(line,"COMPRESS, TRIM") +$ perl_patchlevel = F$ELEMENT(1,"""",line) +$ perl_patchlevel = perl_patchlevel - "SMOKE" +$ got_perl_patchlevel = "true" +$ ENDIF +$ IF ((F$LOCATE("""MAINT",line).NE.F$LENGTH(line)).AND.(.NOT.got_perl_patchlevel)) +$ THEN +$ line = F$EDIT(line,"COMPRESS, TRIM") +$ perl_patchlevel = F$ELEMENT(1,"""",line) +$ perl_patchlevel = perl_patchlevel - "MAINT" +$ got_perl_patchlevel = "true" +$ ENDIF $ IF (.NOT. got_patch) .OR. - (.NOT. got_sub) .OR. - (.NOT. got_api_revision) .OR. - @@ -2022,7 +2040,10 @@ $ DELETE/NOLOG/NOCONFIRM cxxvers.*; $ echo "You are using CXX ''line'" $ cxxversion = line $ ccversion = line +$ d_cplusplus = "define" $ CALL Cxx_demangler_cleanup +$ ELSE +$ d_cplusplus = "undef" $ ENDIF $! $Cxx_demangler_cleanup: SUBROUTINE @@ -2074,7 +2095,7 @@ $Include_dirs: $!: What should the include directory be ? (.TLB text libraries) $ dflt = gcclib_olb $ rp = "Where are the include files you want to use? " -$ IF f$length( rp + "[''dflt'] " ).gt.76 +$ IF f$length( rp + "[''dflt'] " ) .GT. 76 $ THEN rp = F$FAO("!AS!/!AS",rp,"[''dflt'] ") $ ELSE rp = rp + "[''dflt'] " $ ENDIF @@ -2343,7 +2364,6 @@ $ THEN $ echo "" $ echo "Since you have chosen a maximally 64-bit build, I'm also turning on" $ echo "the use of 64-bit integers." -$ echo "I am also setting the default to use large files if available." $ use64bitint="Y" $ ENDIF $! @@ -2361,6 +2381,20 @@ $ rp = "Try to understand large files, if available? [''bool_dflt'] " $ GOSUB myread $ uselargefiles=ans $! +$ bool_dflt = "n" +$ IF F$TYPE(uselongdouble) .NES. "" +$ THEN +$ IF uselongdouble .OR. uselongdouble .eqs. "define" THEN bool_dflt = "y" +$ ENDIF +$ echo "" +$ echo "Perl can be built to take advantage of long doubles which" +$ echo "(if available) may give more accuracy and range for floating point numbers." +$ echo "" +$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." +$ rp = "Try to use long doubles, if available? [''bool_dflt'] " +$ GOSUB myread +$ uselongdouble = ans +$! $ ENDIF ! not VAX && >= 7.1 $! $ IF usesitecustomize .OR. usesitecustomize .eqs. "define" @@ -2430,28 +2464,51 @@ $ use_5005_threads="N" $ ELSE $ use_5005_threads="Y" $ ENDIF -$ ! Are they on VMS 7.1 on an alpha or itanium? -$ if (archname.nes."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") +$ ! Are they on VMS 7.1 or greater? +$ IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1" $ THEN $ echo "" -$ echo "Threaded perl can be linked to use multiple kernel threads" -$ echo "and system upcalls on VMS 7.1+ on Alpha systems. This feature" -$ echo "allows multiple threads to execute simultaneously on an SMP" -$ echo "system as well as preventing a single thread from blocking" -$ echo "all the threads in a program, even on a single-processor" -$ echo "machine. Unfortunately, this feature isn't safe on an" -$ echo "unpatched 7.1 system (several OS patches were required when" -$ echo "this procedure was written)." -$ bool_dflt = "n" -$ rp = "Enable multiple kernel threads and upcalls? [''bool_dflt'] " +$ echo "Threaded Perl can be linked to use system upcalls on your system. This feature" +$ echo "allows the thread scheduler to be made aware of system events (such as I/O)" +$ echo "so as to prevent a single thread from blocking all the threads in a program," +$ echo "even on a single-processor machine." +$ bool_dflt = "y" +$ IF f$type(usethreadupcalls) .NES. "" +$ THEN +$ if .not. usethreadupcalls .or. usethreadupcalls .eqs. "undef" then bool_dflt="n" +$ ENDIF +$ rp = "Enable thread upcalls? [''bool_dflt'] " $ gosub myread -$ if ans +$ IF ans $ THEN -$ Thread_Live_Dangerously = "MT=MT=1" +$ thread_upcalls = "MTU=MTU=1" +$ usethreadupcalls = "define" +$ ! Are they on alpha or itanium? +$ IF (archname .NES. "VMS_VAX") .AND. ("''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.2") +$ THEN +$ echo "" +$ echo "Threaded Perl can be linked to use multiple kernel threads on your system." +$ echo "This feature allows multiple user threads to make use of multiple CPUs on" +$ echo "a multi-processor machine." +$ bool_dflt = "n" +$ IF f$type(usekernelthreads) .nes. "" +$ THEN +$ if usekernelthreads .or. usekernelthreads .eqs. "define" then bool_dflt="y" +$ ENDIF +$ rp = "Enable multiple kernel threads? [''bool_dflt'] " +$ gosub myread +$ IF ans +$ THEN +$ thread_kernel = "MTK=MTK=1" +$ usekernelthreads = "define" +$ ENDIF +$ ENDIF $ ENDIF $ ENDIF $ ENDIF $ ENDIF +$ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef" +$ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef" $ IF archname .NES. "VMS_VAX" $ THEN $! Case sensitive? @@ -2477,8 +2534,8 @@ $ GOSUB myread $ be_case_sensitive = ans $! IEEE math? $ echo "" -$ echo "Perl normally uses IEEE format (T_FLOAT) floating point numbers" -$ echo "internally on Alpha, but if you need G_FLOAT for binary compatibility" +$ echo "Perl normally uses IEEE format (T_FLOAT) floating point numbers on" +$ echo "Alpha and Itanium, but if you need G_FLOAT for binary compatibility" $ echo "with an external library or existing data, you may wish to disable" $ echo "the IEEE math option." $ bool_dflt = use_ieee_math @@ -2526,6 +2583,7 @@ $ d_unlink_all_versions = "define" $ ELSE $ d_unlink_all_versions = "undef" $ ENDIF +$! $! CC Flags $ echo "" $ echo "Your compiler may want other flags. For this question you should include" @@ -2687,7 +2745,14 @@ $ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets $ THEN $ dflt = dflt - "Socket" ! optional on VMS $ ENDIF -$ IF .NOT. use_threads THEN dflt = dflt - "Thread" +$ ! 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 = F$EDIT(dflt,"TRIM,COMPRESS") $! $! Ask for their default list of extensions to build @@ -2836,8 +2901,6 @@ $ rp="What pager is used on your system? [''dflt'] " $ GOSUB myread $ pager = ans $! -$! update [.vms]config.vms here -$! $! update makefile here $! echo4 "Updating makefile..." $! @@ -2865,6 +2928,11 @@ $! $ IF use_ieee_math $ THEN $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm" +$ ELSE +$ IF (archname.EQS."VMS_IA64") +$ THEN +$ extra_flags = "''extra_flags'" + "/float=g_float" +$ ENDIF $ ENDIF $ IF be_case_sensitive $ THEN @@ -3002,12 +3070,15 @@ $! $ ccdlflags="" $ cccdlflags="" $! +$! FIXME -- This section does not really handle all the different permutations +$! of 64-bitness, and it does not provide for the /POINTER_SIZE=64 compiler +$! option that would be necessary to support the "explicit 64-bit interfaces" +$! promised by -Dusemorebits. +$! +$ usemorebits = "undef" $ IF use64bitint .OR. use64bitint .EQS. "define" $ THEN $ use64bitint = "define" -$ uselongdouble = "define" -$ alignbytes="16" -$ usemorebits = "define" $ ivdformat="""Ld""" $ uvuformat="""Lu""" $ uvoformat="""Lo""" @@ -3015,8 +3086,6 @@ $ uvxformat="""Lx""" $ uvXUformat="""LX""" $ ELSE $ use64bitint = "undef" -$ uselongdouble = "undef" -$ usemorebits = "undef" $ ivdformat="""ld""" $ uvuformat="""lu""" $ uvoformat="""lo""" @@ -3025,10 +3094,13 @@ $ uvXUformat="""lX""" $ ENDIF $ IF uselongdouble .OR. uselongdouble .EQS. "define" $ THEN +$ uselongdouble = "define" +$ alignbytes="16" $ nveformat="""Le""" $ nvfformat="""Lf""" $ nvgformat="""Lg""" $ ELSE +$ uselongdouble = "undef" $ nveformat="""e""" $ nvfformat="""f""" $ nvgformat="""g""" @@ -3111,9 +3183,8 @@ $! perllibs should be libs with all non-core libs (such as gdbm) removed. $! $ perllibs=libs $! -$! Are we 64 bit? $! -$ IF use64bitint .OR. use64bitint .EQS. "define" +$ IF archname .NES. "VMS_VAX" $ THEN $ d_PRId64 = "define" $ d_PRIu64 = "define" @@ -3129,10 +3200,9 @@ $ sPRIx64 = """Lx""" $ d_quad = "define" $ quadtype = "long long" $ uquadtype = "unsigned long long" -$ quadkind = "QUAD_IS_LONG_LONG" +$ quadkind = "3" +$! $ d_frexpl = "define" -$ d_isnan = "define" -$ d_isnanl = "define" $ d_modfl = "define" $ d_modflproto = "define" $ ELSE @@ -3148,16 +3218,24 @@ $ sPRIo64 = "" $ sPRIu64 = "" $ sPRIx64 = "" $ d_quad = "undef" -$ quadtype = "long" -$ uquadtype = "unsigned long" -$ quadkind = "QUAD_IS_LONG" +$ quadtype = "undef" +$ uquadtype = "undef" +$ quadkind = "undef" +$! $ d_frexpl = "undef" -$ d_isnan = "undef" -$ d_isnanl = "undef" $ d_modfl = "undef" $ d_modflproto = "undef" $ ENDIF $! +$ IF useieee .OR. useieee .EQS. "define" +$ THEN +$ d_isnan = "define" +$ d_isnanl = "define" +$ ELSE +$ d_isnan = "undef" +$ d_isnanl = "undef" +$ ENDIF +$! $! Now some that we build up $! $ IF use_threads @@ -3509,6 +3587,13 @@ $ tmp = "unistd.h" $ GOSUB inhdr $ i_unistd = tmp $! +$! Check to see if we've got utime.h (which we should use if we have) +$! +$ i_netdb = "undef" +$ tmp = "utime.h" +$ GOSUB inhdr +$ i_utime = tmp +$! $! do we have getppid()? $! $ IF i_unistd .EQS. "define" @@ -3863,6 +3948,12 @@ $ tmp = "sys/mode.h" $ GOSUB inhdr $ i_sysmode = tmp $! +$! Check for poll.h +$! +$ tmp = "sys/poll.h" +$ gosub inhdr +$ i_syspoll = tmp +$! $! Check for sys/access.h $! $ tmp = "sys/access.h" @@ -3916,7 +4007,7 @@ $ WS "int main() {" $ WS "#if defined(F_SETLK) && defined(F_SETLKW)" $ WS " struct flock flock;" $ WS " int retval, fd;" -$ WS " fd = open(""try.c"", O_RDONLY);" +$ WS " fd = open(""[-]perl.c"", O_RDONLY);" $ WS " flock.l_type = F_RDLCK;" $ WS " flock.l_whence = SEEK_SET;" $ WS " flock.l_start = flock.l_len = 0;" @@ -4841,6 +4932,8 @@ $ IF uselargefiles .OR. uselargefiles .eqs. "define" $ THEN $ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") $ THEN +$ echo4 "Largefile support enabled, so enabling standard stat support too." +$ usestdstat = "y" $ echo4 - "Looking for the realpath() function to indicate symbolic link support..." $ OS @@ -5074,37 +5167,41 @@ $ d_truncate="define" $ d_wait4="define" $ d_index="define" $ pidtype="pid_t" -$ sig_name1="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM " -$ sig_name2="TERM ABRT USR1 USR2 SPARE18 SPARE19 CHLD CONT STOP TSTP TTIN TTOU " -$ sig_name3="DEBUG SPARE27 SPARE28 SPARE29 SPARE30 SPARE31 SPARE32 " -$ sig_name4="WINCH " -$ sig_namert="RTMIN RTMAX" -$ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS""," -$ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",""SPARE18"",""SPARE19"",""CHLD"",""CONT"",""STOP"",""TSTP""," -$ psnwc3="""TTIN"",""TTOU"",""DEBUG"",""SPARE27"",""SPARE28"",""SPARE29"",""SPARE30"",""SPARE31"",""SPARE32""," -$ psnwc4_v7_3="""WINCH""," -$ psnwcrt="""RTMIN"",""RTMAX"",0" -$ sig_num1="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 " -$ sig_num_v7_3="28 " -$ sig_numrt="33 64" -$ sig_num_init1="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32," -$ sig_num_init_v7_3="28," -$ sig_num_initrt="33,64,0" -$ if (vms_ver .GES. "7.3") -$ then -$ sig_name = sig_name1 + sig_name2 + sig_name3 + sig_name4 + sig_namert -$ sig_name_init = psnwc1 + psnwc2 + psnwc3 + psnwc4_v7_3 + psnwcrt -$ sig_num = sig_num1 + sig_num_v7_3 + sig_numrt -$ sig_num_init = sig_num_init1 + sig_num_v7_3 + sig_num_initrt -$ sig_size="37" -$ else -$ sig_name = sig_name1 + sig_name2 + sig_name3 + sig_namert -$ sig_name_init = psnwc1 + psnwc2 + psnwc3 + psnwcrt -$ sig_num = sig_num1 + sig_numrt -$ sig_num_init = sig_num_init1 + sig_num_initrt -$ sig_size="36" -$ endif -$ sig_count="64" +$ sig_name1="ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE" +$ sig_name2=" ALRM TERM USR1 USR2 NUM18 NUM19 CHLD CONT STOP TSTP TTIN TTOU DEBUG" +$ IF (vms_ver .GES. "7.3") +$ THEN +$ sig_name2 = sig_name2 + " NUM27 WINCH" +$ ENDIF +$!* signal.h defines SIGRTMIN as 33 and SIGRTMAX as 64, but there is no +$!* sigqueue function or other apparent means to do realtime signalling, +$!* so let's not try to include the realtime range for now. +$!* sig_name3=" NUM29 NUM30 NUM31 NUM32 RTMIN NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43" +$!* sig_name4=" NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58" +$!* sig_name5=" NUM59 NUM60 NUM61 NUMT62 NUM63 RTMAX" +$ sig_name = sig_name1 + sig_name2 +$ sig_num = "" +$ sig_num_init = "" +$ sig_name_init = "" +$ sig_index = 0 +$! +$ PARSE_SIG_NAME_LOOP: +$! +$ tmp = F$ELEMENT(sig_index, " ", sig_name) +$ IF F$LENGTH(F$EDIT(tmp,"TRIM")) .eq. 0 THEN GOTO END_SIG_NAME_LOOP +$ sig_name_init = sig_name_init + """''tmp'""," +$ sig_num = sig_num + "''sig_index' " +$ sig_num_init = sig_num_init + "''sig_index'," +$ sig_index = sig_index + 1 +$ GOTO PARSE_SIG_NAME_LOOP +$! +$ END_SIG_NAME_LOOP: +$! +$ sig_name_init = sig_name_init + "0" +$ sig_num_init = sig_num_init + "0" +$ sig_size = "''sig_index'" +$ sig_index = sig_index - 1 +$ sig_count = "''sig_index'" $ uidtype="uid_t" $ d_pathconf="define" $ d_fpathconf="define" @@ -5315,12 +5412,16 @@ $ IF use64bitint .OR. use64bitint .EQS. "define" $ THEN $ ivtype = "''i64type'" $ uvtype = "''u64type'" -$ nvtype="long double" $ ELSE $ i64size="undef" $ u64size="undef" $ ENDIF $! +$ IF uselongdouble .OR. uselongdouble .EQS. "define" +$ THEN +$ nvtype="long double" +$ ENDIF +$! $ tmp = "''ivtype'" $ GOSUB type_size_check $ ivsize = tmp @@ -5384,53 +5485,131 @@ $ echo "(IV will be ""''ivtype'"", ''ivsize' bytes)" $ echo "(UV will be ""''uvtype'"", ''uvsize' bytes)" $ echo "(NV will be ""''nvtype'"", ''nvsize' bytes)" $! -$ echo4 "Checking whether your NVs can preserve your UVs..." +$ d_nv_preserves_uv = "undef" +$ echo4 "Checking how many bits of your UVs your NVs can preserve..." $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " $ WS "int main() {" -$ WS " ''uvtype' k = (''uvtype')~0, l;" -$ WS " ''nvtype' d;" -$ WS " l = k;" -$ WS " d = (''nvtype')l;" -$ WS " l = (''uvtype')d;" -$ WS " if (l == k)" -$ WS " printf(""preserve\n"");" +$ WS " ''uvtype' u = 0;" +$ WS " int n = 8 * ''uvsize';" +$ WS " int i;" +$ WS " for (i = 0; i < n; i++) {" +$ WS " u = u << 1 | (''uvtype')1;" +$ WS " if ((''uvtype')(''nvtype')u != u)" +$ WS " break;" +$ WS " }" +$ WS " printf(""%d\n"", i);" $ WS " exit(0);" $ WS "}" $ CS $ GOSUB compile -$ IF tmp .EQS. "preserve" -$ THEN +$ nv_preserves_uv_bits = tmp +$ IF F$INTEGER(nv_preserves_uv_bits) .GE. (F$INTEGER(uvsize) * 8) +$ THEN $ d_nv_preserves_uv = "define" -$ echo "Yes, they can." -$ nv_preserves_uv_bits = F$STRING(F$INTEGER(uvsize) * 8) +$ echo "Your NVs can preserve all ''nv_preserves_uv_bits' bits of your UVs." $ ELSE -$ d_nv_preserves_uv = "undef" -$ echo "No, they can't." -$ echo4 "Checking how many bits of your UVs your NVs can preserve..." -$ OS -$ WS "#if defined(__DECC) || defined(__DECCXX)" -$ WS "#include " -$ WS "#endif" -$ WS "#include " -$ WS "int main() {" -$ WS " ''uvtype' u = 0;" -$ WS " int n = 8 * ''uvsize';" -$ WS " int i;" -$ WS " for (i = 0; i < n; i++) {" -$ WS " u = u << 1 | (''uvtype')1;" -$ WS " if ((''uvtype')(''nvtype')u != u)" -$ WS " break;" -$ WS " }" -$ WS " printf(""%d\n"", i);" -$ WS " exit(0);" -$ WS "}" -$ CS -$ GOSUB compile -$ nv_preserves_uv_bits = tmp +$ d_nv_preserves_uv = "undef"" +$ echo "Your NVs can preserve only ''nv_preserves_uv_bits' bits of your UVs." +$ ENDIF +$! +$ nv_overflows_integers_at = "0" +$ echo4 "Checking to find the largest integer value your NVs can hold..." +$ OS +$ WS "#include " +$ WS "" +$ WS "typedef ''nvtype' NV;" +$ WS "" +$ WS "int" +$ WS "main() {" +$ WS " NV value = 2;" +$ WS " int count = 1;" +$ WS "" +$ WS " while(count < 256) {" +$ WS " volatile NV up = value + 1.0;" +$ WS " volatile NV negated = -value;" +$ WS " volatile NV down = negated - 1.0;" +$ WS " volatile NV got_up = up - value;" +$ WS " int up_good = got_up == 1.0;" +$ WS " int got_down = down - negated;" +$ WS " int down_good = got_down == -1.0;" +$ WS "" +$ WS " if (down_good != up_good) {" +$ WS " fprintf(stderr," +$ WS " ""Inconsistency - up %d %f; down %d %f; for 2**%d (%.20f)\n""," +$ WS " up_good, (double) got_up, down_good, (double) got_down," +$ WS " count, (double) value);" +$ WS " return 1;" +$ WS " }" +$ WS " if (!up_good) {" +$ WS " while (1) {" +$ WS " if (count > 8) {" +$ WS " count -= 8;" +$ WS " fputs(""256.0"", stdout);" +$ WS " } else {" +$ WS " count--;" +$ WS " fputs(""2.0"", stdout);" +$ WS " }" +$ WS " if (!count) {" +$ WS " puts("""");" +$ WS " return 0;" +$ WS " }" +$ WS " fputs(""*"", stdout);" +$ WS " }" +$ WS " }" +$ WS " value *= 2;" +$ WS " ++count;" +$ WS " }" +$ WS " fprintf(stderr, ""Cannot overflow integer range, even at 2**%d (%.20f)\n""," +$ WS " count, (double) value);" +$ WS " return 1;" +$ WS "}" +$ CS +$ GOSUB compile +$ IF F$LENGTH(tmp) .GT. 0 +$ THEN +$ IF F$EXTRACT(0,1,tmp) .EQS. "2" +$ THEN +$ echo "The largest integer your NVs can preserve is equal to ''tmp'" +$ nv_overflows_integers_at = tmp +$ ELSE +$ echo "Cannot determine the largest integer value your NVs can hold, unexpected output" +$ echo "''tmp'" +$ ENDIF +$ ELSE +$ echo "Cannot determine the largest integer value your NVs can hold" +$ ENDIF +$! +$! Check for signbit (must already know nvtype) +$! +$ echo4 "Checking to see if you have signbit() available to work on ''nvtype'..." +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS " ''nvtype' x = 0.0;" +$ WS " ''nvtype' y = -0.0;" +$ WS " if ((signbit(x) == 0) && (signbit(y) != 0))" +$ WS " printf(""1\n"");" +$ WS " else" +$ WS " printf(""0\n"");" +$ WS "}" +$ CS +$ GOSUB compile +$ IF tmp .EQS. "1" +$ THEN +$ d_signbit = "define" +$ echo4 "Yes." +$ ELSE +$ d_signbit = "undef" +$ echo4 "Nope." $ ENDIF $! $ echo4 "Checking if kill() uses SYS$FORCEX or can't be called from a signal handler..." @@ -5479,20 +5658,12 @@ $ THEN $ echo4 "Yep, we can." $ kill_by_sigprc = "define" $! -$! since SIGBUS and SIGSEGV indistinguishable, make them the same here. -$! sigusr1 and sigusr2 show up in VMS6.2 and later +$! Use the same list of signals the CRTL does for recent systems, but cook our own for very old systems. +$! Note that the list controls what signals can be caught by name as well as what can be raised via kill(). $! -$ if vms_ver .GES. "6.2" -$ then -$ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT USR1 USR2" -$ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS""," -$ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",""USR1"",""USR2"",0" -$ sig_name_init = psnwc1 + psnwc2 -$ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17" -$ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0" -$ sig_size="19" -$ sig_count="17" -$ else +$ if vms_ver .LTS. "6.2" +$ then +$! since SIGBUS and SIGSEGV indistinguishable, make them the same here. $ sig_name="ZERO HUP INT QUIT ILL TRAP IOT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM ABRT" $ psnwc1="""ZERO"",""HUP"",""INT"",""QUIT"",""ILL"",""TRAP"",""IOT"",""EMT"",""FPE"",""KILL"",""BUS"",""SEGV"",""SYS""," $ psnwc2="""PIPE"",""ALRM"",""TERM"",""ABRT"",0" @@ -5562,6 +5733,7 @@ $ WC "PERL_API_REVISION='" + api_revision + "'" $ WC "PERL_API_VERSION='" + api_version + "'" $ WC "PERL_API_SUBVERSION='" + api_subversion + "'" $ WC "PERL_PATCHLEVEL='" + perl_patchlevel + "'" +$ WC "perl_patchlevel='" + perl_patchlevel + "'" $ WC "PERL_CONFIG_SH='true'" $ WC "_a='" + lib_ext + "'" $ WC "_exe='" + exe_ext + "'" @@ -5583,13 +5755,12 @@ $ WC "cccdlflags='" + cccdlflags + "'" $ WC "ccdlflags='" + ccdlflags + "'" $ IF uselargefiles .OR. uselargefiles .EQS. "define" $ THEN -$! Perl can not use _USE_STD_STAT at the moment -$! IF d_symlink .OR. d_symlink .EQS. "define" -$! THEN -$! ccdefines = "_USE_STD_STAT=1" -$! ELSE +$ IF usestdstat .OR. usestdstat .EQS. "define" +$ THEN +$ ccdefines = "_USE_STD_STAT=1" +$ ELSE $ ccdefines = "_LARGEFILE=1" -$! ENDIF +$ ENDIF $ ELSE $ ccdefines = "" $ ENDIF @@ -5646,12 +5817,15 @@ $ WC "d_attribute_noreturn='undef'" $ WC "d_attribute_pure='undef'" $ WC "d_attribute_unused='undef'" $ WC "d_attribute_warn_unused_result='undef'" +$ WC "d_printf_format_null='undef'" $ WC "d_bcmp='" + d_bcmp + "'" $ WC "d_bcopy='" + d_bcopy + "'" $ WC "d_bincompat3='undef'" $! WC "d_bsdpgrp='undef'" $ WC "d_bsdgetpgrp='undef'" $ WC "d_bsdsetpgrp='undef'" +$ WC "d_builtin_choose_expr='undef'" ! GCC only +$ WC "d_builtin_expect='undef'" ! GCC only $ WC "d_bzero='" + d_bzero + "'" $ WC "d_casti32='define'" $ WC "d_castneg='define'" @@ -5663,12 +5837,16 @@ $ WC "d_class='undef'" $ WC "d_cmsghdr_s='undef'" $ WC "d_const='define'" $ WC "d_copysignl='define'" +$ WC "d_cplusplus='" + d_cplusplus + "'" $ WC "d_crypt='define'" $ WC "d_csh='undef'" +$ WC "d_ctermid='define'" $ WC "d_cuserid='define'" +$ WC "d_c99_variadic_macros='undef'" $ WC "d_dbl_dig='define'" $ WC "d_dbminitproto='undef'" $ WC "d_difftime='define'" +$ WC "d_dir_dd_fd='undef'" $ WC "d_dirfd='undef'" $ WC "d_dirnamlen='define'" $ WC "d_dlerror='undef'" @@ -5754,6 +5932,7 @@ $ WC "d_grpasswd='undef'" $ WC "d_hasmntopt='undef'" $ WC "d_htonl='" + d_htonl + "'" $ WC "d_ilogbl='undef'" +$ WC "d_inc_version_list='undef'" $ WC "d_index='" + d_index + "'" $ WC "d_inetaton='undef'" $ WC "d_int64_t='" + d_int64_t + "'" @@ -5811,6 +5990,7 @@ $ WC "d_nanosleep='" + d_nanosleep + "'" $ WC "d_nice='define'" $ WC "d_nl_langinfo='" + d_nl_langinfo + "'" $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'" +$ WC "nv_overflows_integers_at='" + nv_overflows_integers_at + "'" $ WC "nv_preserves_uv_bits='" + nv_preserves_uv_bits + "'" $ WC "d_nv_zero_is_allbits_zero='define'" $ WC "d_off64_t='" + d_off64_t + "'" @@ -5825,6 +6005,7 @@ $ WC "d_phostname='" + d_phostname + "'" $ WC "d_pipe='define'" $ WC "d_poll='" + d_poll + "'" $ WC "d_procselfexe='undef'" +$ WC "d_pseudofork='undef'" $ WC "d_pthread_atfork='undef'" $ WC "d_pthread_attr_setscope='" + d_pthread_attr_setscope + "'" $ WC "d_pthread_yield='" + d_pthread_yield + "'" @@ -5890,8 +6071,10 @@ $ WC "d_sfio='undef'" $ WC "d_shm='undef'" $ WC "d_shmatprototype='undef'" $ WC "d_sigaction='" + d_sigaction + "'" +$ WC "d_signbit='" + d_signbit + "'" $ WC "d_sigprocmask='" + d_sigprocmask + "'" $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" +$ WC "d_sitearch='define'" $ WC "d_sockatmark='undef'" $ WC "d_sockatmarkproto='undef'" $ WC "d_socket='" + d_socket + "'" @@ -5945,6 +6128,7 @@ $ WC "d_tcsetpgrp='undef'" $ WC "d_telldir='define'" $ WC "d_telldirproto='define'" $ WC "d_time='define'" +$ WC "d_timegm='undef'" $ WC "d_times='define'" $ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.0") $ THEN @@ -5996,6 +6180,7 @@ $ WC "dlobj='" + dlobj + "'" $ WC "dlsrc='dl_vms.c'" $ WC "doublesize='" + doublesize + "'" $ WC "drand01='" + drand01 + "'" +$ WC "dtrace='" + "'" $! $! The extensions symbol may be quite long $! @@ -6037,6 +6222,7 @@ $ WC "i64type='" + i64type + "'" $ WC "i8size='" + i8size + "'" $ WC "i8type='" + i8type + "'" $ WC "i_arpainet='undef'" +$ WC "i_assert='define'" $ WC "i_crypt='undef'" $ WC "i_db='undef'" $ WC "i_dbm='undef'" @@ -6046,6 +6232,9 @@ $ WC "i_fcntl='" + i_fcntl + "'" $ WC "i_float='define'" $ WC "i_fp='undef'" $ WC "i_fp_class='undef'" +$ WC "i_gdbm='undef'" +$ WC "i_gdbm_ndbm='undef'" +$ WC "i_gdbmndbm='undef'" $ WC "i_grp='" + i_grp + "'" $ WC "i_ieeefp='undef'" $ WC "i_inttypes='" + i_inttypes + "'" @@ -6055,6 +6244,7 @@ $ WC "i_limits='define'" $ WC "i_locale='" + i_locale + "'" $ WC "i_machcthr='undef'" $ WC "i_machcthreads='undef'" +$ WC "i_mallocmalloc='undef'" $ WC "i_math='define'" $ WC "i_memory='undef'" $ WC "i_mntent='undef'" @@ -6087,6 +6277,7 @@ $ WC "i_sysmode='" + i_sysmode + "'" $ WC "i_sysmount='undef'" $ WC "i_sysndir='undef'" $ WC "i_sysparam='undef'" +$ WC "i_syspoll='" + i_syspoll + "'" $ WC "i_sysresrc='undef'" $ WC "i_syssecrt='" + i_syssecrt + "'" $ WC "i_sysselct='undef'" @@ -6108,7 +6299,7 @@ $ WC "i_termios='undef'" $ WC "i_time='define'" $ WC "i_unistd='" + i_unistd + "'" $ WC "i_ustat='undef'" -$ WC "i_utime='undef'" +$ WC "i_utime='" + i_utime + "'" $ WC "i_values='undef'" $ WC "i_varargs='undef'" $ WC "i_vfork='undef'" @@ -6158,6 +6349,7 @@ $ WC "lseeksize='4'" $ WC "lseektype='int'" $ ENDIF $ WC "mab='" + "'" +$ WC "mad='undef'" $ WC "make='" + make + "'" $ WC "malloctype='void *'" $ WC "usemallocwrap='" + usemallocwrap + "'" @@ -6236,13 +6428,25 @@ $ WC "seedfunc='" + seedfunc + "'" $ WC "selectminbits='32'" $ WC "selecttype='" + selecttype + "'" $ WC "sh='MCR'" +$ WC "sharpbang='#!'" $ WC "shmattype='" + " '" $ WC "shortsize='" + shortsize + "'" -$ WC "shrplib='define'" -$ WC "sig_name='" + sig_name + "'" -$ tmp = "sig_name_init='" + sig_name_init + "'" -$ WC/symbol tmp -$ DELETE/SYMBOL tmp +$ IF (f$length(sig_name) .GE. 244) +$ THEN +$ tmp = "sig_name='" + sig_name + "'" +$ WC/symbol tmp +$ DELETE/SYMBOL tmp +$ ELSE +$ WC "sig_name='" + sig_name + "'" +$ ENDIF +$ IF (f$length(sig_name_init) .GE. 244) +$ THEN +$ tmp = "sig_name_init='" + sig_name_init + "'" +$ WC/symbol tmp +$ DELETE/SYMBOL tmp +$ ELSE +$ WC "sig_name_init='" + sig_name_init + "'" +$ ENDIF $ WC "sig_num='" + sig_num + "'" $ WC "sig_num_init='" + sig_num_init + "'" $ WC "sig_count='" + sig_count + "'" @@ -6273,6 +6477,7 @@ $ WC "stdio_cnt='((*fp)->_cnt)'" $ WC "stdio_ptr='((*fp)->_ptr)'" $ WC "stdio_stream_array=' " + "'" $ WC "subversion='" + subversion + "'" +$ WC "targetarch='" + "'" $ WC "timetype='" + timetype + "'" $ WC "u16size='" + u16size + "'" $ WC "u16type='" + u16type + "'" @@ -6295,9 +6500,11 @@ $ WC "usedebugging_perl='"+use_debugging_perl+"'" $ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific $ WC "usecrosscompile='undef'" $ WC "usedl='" + usedl + "'" +$ WC "usedtrace='undef'" $ WC "usefaststdio='" + usefaststdio + "'" $ WC "useieee='" + useieee + "'" ! VMS-specific $ WC "useithreads='" + useithreads + "'" +$ WC "usekernelthreads='" + usekernelthreads + "'" ! VMS-specific $ WC "uselargefiles='" + uselargefiles + "'" $ WC "uselongdouble='" + uselongdouble + "'" $ WC "usemorebits='" + usemorebits + "'" @@ -6308,9 +6515,11 @@ $ WC "useposix='false'" $ WC "usereentrant='undef'" $ WC "userelocatableinc='undef'" $ WC "usesecurelog='" + usesecurelog + "'" ! VMS-specific +$ WC "useshrplib='true'" $ WC "usesitecustomize='" + usesitecustomize + "'" $ WC "usesocks='undef'" $ WC "usethreads='" + usethreads + "'" +$ WC "usethreadupcalls='" + usethreadupcalls + "'" ! VMS-specific $ WC "usevendorprefix='" + "'" ! try to say no, though we'll be ignored as of MM 5.90_01 $ WC "usevfork='true'" $ WC "usevmsdebug='" + usevmsdebug + "'" ! VMS-specific @@ -6383,6 +6592,7 @@ $ WC "d_getservent_r='undef'" $ WC "d_getspnam_r='undef'" $ WC "d_gmtime_r='undef'" ! leave undef'd; we use my_gmtime $ WC "d_localtime_r='undef'" ! leave undef'd; we use my_localtime +$ WC "d_localtime_r_needs_tzset='undef'" $ WC "d_random_r='undef'" $ WC "d_readdir_r='define'" ! always defined; we roll our own $ WC "d_readdir64_r='undef'" @@ -6453,7 +6663,7 @@ $! $! Okay, we've gotten here. Build munchconfig.exe $ COPY/NOLOG [-.vms]munchconfig.c [] $ COPY/NOLOG [-.vms]'Makefile_SH' [] -$ 'Perl_CC' munchconfig.c +$ 'Perl_CC' 'ccflags' munchconfig.c $ IF Needs_Opt $ THEN $ OPEN/WRITE CONFIG []munchconfig.opt @@ -6539,6 +6749,7 @@ $ ENDIF $ IF use64bitall .OR. use64bitall .EQS. "define" THEN - WC "#define USE_64_BIT_ALL" $ IF be_case_sensitive THEN WC "#define VMS_WE_ARE_CASE_SENSITIVE" +$ IF use_ieee_math THEN WC "#define USE_IEEE" $ IF d_herrno .EQS. "undef" THEN WC "#define NEED_AN_H_ERRNO" $ WC "#define HAS_ENVGETENV" $ WC "#define PERL_EXTERNAL_GLOB" @@ -6615,23 +6826,43 @@ $ MALLOC_REPLACE = "MALLOC=" $ ENDIF $ IF uselargefiles .OR. uselargefiles .EQS. "define" $ THEN -$! Perl can not use _USE_STD_STAT at the moment -$! IF d_symlink .or. d_symlink .eqs. "define" -$! THEN -$! LARGEFILE_REPLACE = "LARGEFILE=LARGEFILE=_USE_STD_STAT=1" -$! ELSE +$ IF usestdstat .or. usestdstat .eqs. "define" +$ THEN +$ LARGEFILE_REPLACE = "LARGEFILE=LARGEFILE=_USE_STD_STAT=1" +$ ELSE $ LARGEFILE_REPLACE = "LARGEFILE=LARGEFILE=_LARGEFILE=1" -$! ENDIF +$ ENDIF $ ELSE $ LARGEFILE_REPLACE = "LARGEFILE=" $ ENDIF +$! +$! In order not to stress the tiny command buffer on pre-7.3-2 systems, +$! we put the following substitutions in a file and pass the file to +$! munchconfig. +$! +$ open/write CONFIG extra_subs.txt +$ WC := write CONFIG +$ WC "''DECC_REPLACE'" +$ WC "''DECCXX_REPLACE'" +$ WC "''ARCH_TYPE'" +$ WC "''GNUC_REPLACE'" +$ WC "''SOCKET_REPLACE'" +$ WC "''THREAD_REPLACE'" +$ WC "''C_Compiler_Replace'" +$ WC "''MALLOC_REPLACE'" +$ WC "''THREAD_UPCALLS'" +$ WC "''THREAD_KERNEL'" +$ WC "PV=''version'" +$ WC "FLAGS=FLAGS=''extra_flags'" +$ WC "''LARGEFILE_REPLACE'" +$ close CONFIG +$! $ echo4 "Extracting ''defmakefile' (with variable substitutions)" $ DEFINE/USER_MODE sys$output 'UUmakefile' -$ mcr []munchconfig 'config_sh' 'Makefile_SH' "''DECC_REPLACE'" "''DECCXX_REPLACE'" "''ARCH_TYPE'" "''GNUC_REPLACE'" - -"''SOCKET_REPLACE'" "''THREAD_REPLACE'" "''C_Compiler_Replace'" "''MALLOC_REPLACE'" - -"''Thread_Live_Dangerously'" "PV=''version'" "FLAGS=FLAGS=''extra_flags'" "''LARGEFILE_REPLACE'" +$ mcr []munchconfig 'config_sh' 'Makefile_SH' -f extra_subs.txt $! 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 @@ -6640,7 +6871,7 @@ $!++ 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. -$ def = F$Environment("Default") +$ 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) @@ -6698,11 +6929,11 @@ $ 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 &def +$ Set Def &mydefault $ Goto next_ext $ done: $ sts = $Status -$ Set Def &def +$ Set Def &mydefault $ Exit sts $!-- make_ext.com $EndOfTpl$ @@ -6870,8 +7101,6 @@ $!---------------------------------------------- $ pcsi_producer = f$trnlnm("PCSI_PRODUCER") $ if pcsi_producer .eqs. "" $ then -$ prefix = prefix - "000000." -$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" $ else $ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" @@ -6886,12 +7115,6 @@ $ WRITE CONFIG "$ then" $ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'myroot_dev'['myroot_dir'.]" $ WRITE CONFIG "$ endif" $ endif -$ -$ prefix = prefix - "000000." -$ IF F$LOCATE(".]",prefix) .EQ. F$LENGTH(prefix) THEN prefix = prefix - "]" + ".]" -$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" - - $ WRITE CONFIG "$ ext = "".exe""" $ IF sharedperl $ THEN @@ -6923,9 +7146,6 @@ $ THEN $ WRITE CONFIG "$ set command ''vms_prefix':[000000]''packageup'.CLD" $ ENDIF $ ENDIF ! perl_symbol -$ WRITE CONFIG "$ define/nolog pod2text ''vms_prefix':[lib.pod]pod2text.com" -$ WRITE CONFIG "$ define/nolog pod2html ''vms_prefix':[lib.pod]pod2html.com" -$ WRITE CONFIG "$ define/nolog pod2man ''vms_prefix':[lib.pod]pod2man.com" $! $ IF (tzneedset) $ THEN @@ -6934,10 +7154,16 @@ $ ELSE !leave in but commented out (in case setting was from perl :-) $ WRITE CONFIG "$! define SYS$TIMEZONE_DIFFERENTIAL ''tzd'" $ ENDIF $ WRITE CONFIG "$!" -$ WRITE CONFIG "$! Symbols for commonly used programs:" +$ WRITE CONFIG "$! Symbols for Perl-based utility programs:" $ WRITE CONFIG "$!" $ WRITE CONFIG "$ c2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]c2ph.com""" +$ WRITE CONFIG "$ config_data== """ + perl_setup_perl + " ''vms_prefix':[utils]config_data.com""" +$ WRITE CONFIG "$ corelist == """ + perl_setup_perl + " ''vms_prefix':[utils]corelist.com""" $ WRITE CONFIG "$ cpan == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan.com""" +$ WRITE CONFIG "$ cpan2dist == """ + perl_setup_perl + " ''vms_prefix':[utils]cpan2dist.com""" +$! 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) $ THEN $ WRITE CONFIG "$ dprofpp == """ + perl_setup_perl + " ''vms_prefix':[utils]dprofpp.com""" @@ -6948,16 +7174,15 @@ $ WRITE CONFIG "$ h2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]h $ WRITE CONFIG "$ h2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com""" $ WRITE CONFIG "$ instmodsh == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com""" $ WRITE CONFIG "$ libnetcfg == """ + perl_setup_perl + " ''vms_prefix':[utils]libnetcfg.com""" -$ WRITE CONFIG "$ perlbug == """ + perl_setup_perl + " ''vms_prefix':[lib]perlbug.com""" -$ WRITE CONFIG "$!perlcc == """ + perl_setup_perl + " ''vms_prefix':[utils]perlcc.com""" -$ WRITE CONFIG "$ perldoc == """ + perl_setup_perl + " ''vms_prefix':[lib.pods]perldoc.com -t""" +$ WRITE CONFIG "$ perlbug == """ + perl_setup_perl + " ''vms_prefix':[utils]perlbug.com""" +$ WRITE CONFIG "$ perldoc == """ + perl_setup_perl + " ''vms_prefix':[utils]perldoc.com """"-t""""""" $ WRITE CONFIG "$ perlivp == """ + perl_setup_perl + " ''vms_prefix':[utils]perlivp.com""" $ WRITE CONFIG "$ piconv == """ + perl_setup_perl + " ''vms_prefix':[utils]piconv.com""" $ WRITE CONFIG "$ pl2pm == """ + perl_setup_perl + " ''vms_prefix':[utils]pl2pm.com""" -$ WRITE CONFIG "$ pod2html == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2html""" -$ WRITE CONFIG "$ pod2latex == """ + perl_setup_perl + " ''vms_prefix':[lib.pod]pod2latex.com""" -$ WRITE CONFIG "$ pod2text == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2text""" -$ WRITE CONFIG "$!pod2man == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2man""" +$ WRITE CONFIG "$ pod2html == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2html.com""" +$ WRITE CONFIG "$ pod2latex == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2latex.com""" +$ WRITE CONFIG "$ pod2text == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2text.com""" +$ WRITE CONFIG "$!pod2man == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2man.com""" $ WRITE CONFIG "$ pod2usage == """ + perl_setup_perl + " ''vms_prefix':[utils]pod2usage.com""" $ WRITE CONFIG "$ podchecker == """ + perl_setup_perl + " ''vms_prefix':[utils]podchecker.com""" $ WRITE CONFIG "$ podselect == """ + perl_setup_perl + " ''vms_prefix':[utils]podselect.com""" @@ -6965,6 +7190,9 @@ $ WRITE CONFIG "$ prove == """ + perl_setup_perl + " ''vms_prefix':[utils]p $ WRITE CONFIG "$ psed == """ + perl_setup_perl + " ''vms_prefix':[utils]psed.com""" $ WRITE CONFIG "$ pstruct == """ + perl_setup_perl + " ''vms_prefix':[utils]pstruct.com""" $ WRITE CONFIG "$ s2p == """ + perl_setup_perl + " ''vms_prefix':[utils]s2p.com""" +$ WRITE CONFIG "$ ptar == """ + perl_setup_perl + " ''vms_prefix':[utils]ptar.com""" +$ WRITE CONFIG "$ ptardiff == """ + perl_setup_perl + " ''vms_prefix':[utils]ptardiff.com""" +$ WRITE CONFIG "$ shasum == """ + perl_setup_perl + " ''vms_prefix':[utils]shasum.com""" $ WRITE CONFIG "$ splain == """ + perl_setup_perl + " ''vms_prefix':[utils]splain.com""" $ WRITE CONFIG "$ xsubpp == """ + perl_setup_perl + " ''vms_prefix':[utils]xsubpp.com""" $ CLOSE CONFIG