X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/b68c599a1231c4d11ec0b0a667ce0c407c357eab..683e3b31e8b72ccea0ba577bdee2bc58caa738ad:/configure.com diff --git a/configure.com b/configure.com index 501ade3..2d3dc55 100644 --- a/configure.com +++ b/configure.com @@ -44,6 +44,7 @@ $ extra_flags = "" $ user_c_flags = "" $ use_ieee_math = "y" $ be_case_sensitive = "n" +$ shorten_long_symbols = "y" $ unlink_all_versions = "n" $ builder = "MMK" $ use_vmsdebug_perl = "n" @@ -61,7 +62,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] @@ -115,11 +118,9 @@ $!: Private path used by Configure to find libraries. Its value !sfn $!: is prepended to libpth. This variable takes care of special !sfn $!: machines, like the mips. Usually, it should be empty. !sfn $!plibpth='' !sfn -$!: full support for void wanted by default !sfn -$!defvoidused=15 !sfn $!: List of libraries we want. !sfn $!libswanted='net socket inet nsl nm ndbm gdbm dbm db malloc dl' !sfn -$!libswanted="$libswanted dld ld sun m c cposix posix ndir dir crypt" !sfn +$!libswanted="$libswanted ld sun m c cposix posix ndir dir crypt" !sfn $!libswanted="$libswanted ucb bsd BSD PW x" !sfn $!: We probably want to search /usr/shlib before most other libraries. !sfn $!: This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist. !sfn @@ -143,7 +144,7 @@ $ silent="" $ extractsh="" $ override="" $ knowitall="" -$ ccname="VAX" +$ ccname="DECC" $ Dec_C_Version = "" $ cxxversion = "" $ use_threads = "F" @@ -368,11 +369,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 @@ -468,6 +478,11 @@ $ IF ( F$SEARCH("UU.DIR").EQS."" ) $ THEN $ CREATE/DIRECTORY [.UU] $ ELSE +$ IF ( F$SEARCH("[.UU.CXX_REPOSITORY]*.*").NES."" ) +$ THEN +$ DELETE/NOLOG/NOCONFIRM [.UU.CXX_REPOSITORY]*.*;* +$ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) [.UU]CXX_REPOSITORY.DIR +$ ENDIF $ IF ( F$SEARCH("[.UU]*.*").NES."" ) THEN DELETE/NOLOG/NOCONFIRM [.UU]*.*;* $ ENDIF $!: Configure runs within the UU subdirectory @@ -553,6 +568,13 @@ $ basename = - $ found = F$SEARCH(dirname + basename) $ file_2_find = file_2_find + "," + basename $ ENDIF +$ tildeloc = f$locate("~",basename) +$ IF (found .EQS. "" .AND. tildeloc .LT. f$length(basename)) +$ THEN +$ basename[tildeloc,1] := "_" +$ found = F$SEARCH(dirname + basename) +$ file_2_find = file_2_find + "," + basename +$ ENDIF $ IF (found .EQS. "") $ THEN $ WRITE MISSING file_2_find @@ -709,7 +731,7 @@ $ WRITE CONFIG - $ CLOSE CONFIG $ ENDIF $! -$ IF F$TYPE(usedevel) .EQS. "" THEN usedevel := n +$ IF F$TYPE(usedevel) .EQS. "" THEN usedevel = "undef" $ patchlevel_h = F$SEARCH("[-]patchlevel.h") $ IF (patchlevel_h.NES."") $ THEN @@ -902,10 +924,10 @@ $! ...and only accept symbols if they're in the | delimited list below $! $ 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_symbols2 ="|prefix|privlib|privlibexp|scriptdir|sitearch|sitearchexp|sitebin|sitelib|sitelib_stem|sitelibexp|usecxx|use64bitall|use64bitint|" $ 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" +$ config_symbols4 ="|usesecurelog|usethreads|usevmsdebug|usefaststdio|usemallocwrap|unlink_all_versions|uselargefiles|usesitecustomize|" +$ config_symbols5 ="|buildmake|builder|usethreadupcalls|usekernelthreads|useshortenedsymbols|useversionedarchname" $! $ open/read CONFIG 'config_sh' $ rd_conf_loop: @@ -942,7 +964,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 $! @@ -956,7 +978,6 @@ $! $!First time through, eh? I have some defaults handy for the following systems: $! $! EOD -$! echo " ","VMS_VAX" $! echo " ","VMS_AXP" $! echo " ","VMS_IA64" $! : Now look for a hint file osname_osvers, unless one has been @@ -1124,190 +1145,43 @@ $Beyond_TimeZone: $ tz = f$fao("UTC!AS!UL:!2ZL",signothetime,tzhour,tzminrem) $ cf_time = "''wkday' ''mon' ''mday' ''hour':''min':''sec' ''tz' ''year'" $! -$!: determine the architecture name -$! 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. -$! "VMS_AXP" from here on to allow cross-platform configuration (e.g. -$! configure a VAX build on an Alpha). +$! This quotation from Configure has to be included on VMS: +$! +$ TYPE SYS$INPUT: +$ DECK + +There is, however, a strange, musty smell in the air that reminds me of +something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. +$ EOD +$! +$! Determine the architecture name. For now we just get the base +$! architecture name, which may accumulate various minus sign-delimited +$! appendages later depending on configuration options. But we need the +$! base name early because not all questions are worth asking on all +$! platforms. +$! +$! Please use F$ELEMENT(0,"-",archname) .EQS. "VMS_AXP" (or +$! "VMS_IA64") from here on to allow cross-platform configuration (e.g. +$! configure a IA64 build on an Alpha). $! $ IF (F$GETSYI("HW_MODEL") .LT. 1024 .AND. F$GETSYI("HW_MODEL") .GT. 0) $ THEN -$ archname = "VMS_VAX" -$ otherarch = "an Alpha or IA64" -$ alignbytes="8" -$ arch_type = "ARCH-TYPE=__VAX__" +$ echo "Sorry, VAX is no longer supported by this Perl version." +$ echo "Please try Perl 5.22 or earlier" +$ exit 44 $ ELSE $ IF (F$GETSYI("ARCH_TYPE") .EQ. 2) $ THEN $ archname = "VMS_AXP" -$ otherarch = "a VAX or IA64" +$ otherarch = "IA64" $ arch_type = "ARCH-TYPE=__AXP__" $ ELSE $ archname = "VMS_IA64" -$ otherarch = "a VAX or Alpha" +$ otherarch = "Alpha" $ arch_type = "ARCH-TYPE=__IA64__" $ ENDIF $ alignbytes="8" $ ENDIF -$ dflt = archname -$ rp = "What is your architecture name? [''archname'] " -$ GOSUB myread -$ IF ans.NES."" -$ THEN -$ ans = F$EDIT(ans,"COLLAPSE, UPCASE") -$ IF (ans.NES.archname) !.AND.knowitall -$ THEN -$ echo4 "I'll go with ''archname' anyway..." -$ ENDIF -$ ENDIF -$ bool_dflt = "n" -$ vms_prefix = "perl_root" -$ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") -$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] " -$ GOSUB myread -$ IF .NOT. ans -$ THEN -$ sharedperl = "N" -$ ELSE -$ sharedperl = "Y" -$ IF (archname.EQS."VMS_AXP") -$ THEN -$ macros = macros + """AXE=1""," -$ ENDIF -$ IF (archname.EQS."VMS_IA64") -$ THEN -$ macros = macros + """IXE=1""," -$ ENDIF -$ ENDIF -$! -$!: is AFS running? !sfn -$!: decide how portable to be. Allow command line overrides. !sfn -$!: set up shell script to do ~ expansion !sfn -$!: expand filename !sfn -$!: now set up to get a file name !sfn -$! -$ IF F$TYPE(prefix) .EQS. "" -$ THEN -$ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" -$ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - "000000." - ".000000" - ".;" -$ 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 -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "By default, ''package' will be installed in ''dflt', pod" -$ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" -$ echo "all installation directories." -$ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" -$ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." -$ ENDIF -$ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " -$ GOSUB myread -$ IF ans.NES."" -$ THEN -$ prefix = ans -$ IF F$LOCATE(".]",ans) .EQ. F$LENGTH(ans) THEN prefix = prefix - "]" + ".]" -$ ELSE -$ prefix = dflt -$ ENDIF -$ perl_root = prefix -$! -$! Check here for pre-existing PERL_ROOT. -$! -> ask if removal desired. -$! Check here for writability of requested PERL_ROOT if it is not the default (cwd). -$! -> recommend letting PERL_ROOT be PERL_SRC if requested PERL_ROOT is not writable. -$! -$ tmp = perl_root - ".]" + "]" -$ dflt = f$parse(tmp,,,,) -$ IF dflt .eqs. "" -$ THEN -$ echo4 "''tmp' does not yet exist." -$! create/directory 'tmp' -$ ELSE -$ echo4 "''tmp' already exists." -$ ENDIF -$! -$ vms_skip_install = "true" -$ bool_dflt = "y" -$! echo "" -$ rp = "Skip the remaining """"where install"""" questions? [''bool_dflt'] " -$ GOSUB myread -$ IF (.NOT.ans) THEN vms_skip_install = "false" -$ IF (.NOT.vms_skip_install) -$ THEN -$! -$!: set the prefixit variable, to compute a suitable default value -$! -$!: determine where private library files go -$!: Usual default is /usr/local/lib/perl5. Also allow things like -$!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. -$ IF .NOT.silent -$ THEN -$ TYPE SYS$INPUT: -$ DECK - -There are some auxiliary files for perl5 that need to be put into a -private library directory that is accessible by everyone. -$ EOD -$ ENDIF -$ IF F$TYPE(privlib) .NES. "" -$ THEN dflt = privlib -$ ELSE dflt = "''vms_prefix':[lib]" -$ ENDIF -$ rp = "Pathname where the private library files will reside? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ privlib = ans -$! -$ ENDIF !%Config-I-VMS, skip remaining "where install" questions -$! -$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true -$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = "" -$ IF perl_symbol -$ THEN bool_dflt = "y" -$ ELSE bool_dflt = "n" -$ ENDIF -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" -$ echo "symbol to invoke ''package', which is the usual method." -$ echO "If you do not do so then you would need a DCL command verb at the" -$ echo "process or the system wide level." -$ ENDIF -$ rp = "Invoke perl as a global symbol foreign command? [''bool_dflt'] " -$ GOSUB myread -$ IF (.NOT.ans) THEN perl_symbol = "false" -$! -$ IF (.NOT.perl_symbol) -$ THEN -$ IF perl_verb .EQS. "DCLTABLES" -$ THEN bool_dflt = "n" -$ ELSE bool_dflt = "y" -$ ENDIF -$ IF .NOT.silent -$ THEN -$ echo "" -$ echo "Since you won't be using a symbol you must choose to put the ''packageup'" -$ echo "verb in a per-process table or in the system wide DCLTABLES (which" -$ echo "would require write privilege)." -$ ENDIF -$ rp = "Invoke perl as a per process command verb? [ ''bool_dflt' ] " -$ GOSUB myread -$ IF (.NOT.ans) -$ THEN perl_verb = "DCLTABLES" -$ ELSE perl_verb = "PROCESS" -$ ENDIF -$ ENDIF ! (.NOT.perl_symbol) $! $!: set the base revision $ baserev="5.0" @@ -1401,9 +1275,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'" @@ -1415,243 +1290,74 @@ $ echo "(You have ''package' ''version_patchlevel_string'.)" $! $ version = revision + "_" + patchlevel + "_" + subversion $! -$ IF (.NOT.vms_skip_install) -$ THEN -$!: set the prefixup variable, to restore leading tilde escape !sfn +$!: see if we need a special compiler +$! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands $! -$!: determine where public architecture dependent libraries go -$ IF (.NOT.silent) +$ nocc = "f" +$ vms_cc_dflt = "" +$ vms_cc_available = "" +$! +$ OPEN/WRITE CONFIG ccvms.c +$ WRITE CONFIG "#ifdef __DECC" +$ WRITE CONFIG "#include " !DECC is sooo picky +$ WRITE CONFIG "#endif" +$ WRITE CONFIG "#include " +$ WRITE CONFIG "int main() {" +$ WRITE CONFIG "#ifdef __DECC" +$ WRITE CONFIG " printf(""/DECC\n"");" +$ WRITE CONFIG "#else" +$ WRITE CONFIG " printf(""/VAXC\n"");" +$ WRITE CONFIG "#endif" +$ WRITE CONFIG " exit(0);" +$ WRITE CONFIG "}" +$ CLOSE CONFIG +$! +$ SET NOON +$ DEFINE/USER_MODE SYS$ERROR _NLA0: +$ DEFINE/USER_MODE SYS$OUTPUT _NLA0: +$ cc/NoObj/list=ccvms.lis ccvms.c +$ tmp = $status +$ SET ON +$ IF (silent) THEN GOSUB Shut_up +$ IF tmp.NE.%X10B90001 +$ THEN +$ IF tmp.NE.%X10000001 +$ THEN +$ nocc = "t" !%X10000001 is return from gcc +$ GOTO Gcc_initial_check +$ ENDIF +$ ENDIF +$! +$ GOSUB List_Parse +$ IF .NOT.silent THEN echo "" +$ echo "Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" +$ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) +$ THEN +$ IF .NOT.silent $ THEN -$ echo "" -$ echo "''package' contains architecture-dependent library files. If you are" +$ echo "Will try cc/decc..." $ ENDIF -$ IF (.NOT.silent) +$ SET NOON +$ DEFINE/USER_MODE SYS$ERROR NL: +$ DEFINE/USER_MODE SYS$OUTPUT NL: +$ cc/decc/NoObj/list=ccvms.lis ccvms.c +$ tmp = $status +$ SET ON +$ IF (silent) THEN GOSUB Shut_up +$ IF tmp.NE.%X10B90001 $ THEN -$ TYPE SYS$INPUT: -$ DECK -sharing libraries in a heterogeneous environment, you might store -these files in a separate location. Otherwise, you can just include -them with the rest of the public library files. -$ EOD +$ echo "Apparently you don't have that one." +$ ELSE +$ GOSUB List_parse +$ echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'" +$ vms_cc_available = vms_cc_available + "cc/decc " $ ENDIF -$ IF F$TYPE(archlib) .NES. "" -$ THEN dflt = archlib -$ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" -$ ENDIF -$ rp = "Where do you want to put the public architecture-dependent libraries? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ archlib = ans -$! -$ ENDIF !%Config-I-VMS, skip "where install" questions -$! -$! This quotation from Configure has to be included on VMS: -$! -$ TYPE SYS$INPUT: -$ DECK - -There is, however, a strange, musty smell in the air that reminds me of -something...hmm...yes...I've got it...there's a VMS nearby, or I'm a Blit. -$ EOD -$ IF (.NOT.vms_skip_install) -$ THEN -$!: it so happens the Eunice I know will not run shell scripts in Unix format -$! -$!: see if setuid scripts can be secure !sfn -$!: now see if they want to do setuid emulation !sfn -$! -$!: determine where site specific libraries go. -$ IF .NOT.silent -$ THEN -$ TYPE SYS$INPUT: -$ DECK - -The installation process will also create a directory for -site-specific extensions and modules. Some users find it convenient -to place all local files in this directory rather than in the main -distribution directory. -$ EOD -$ ENDIF -$ IF F$TYPE(sitelib) .NES. "" -$ THEN dflt = sitelib -$ ELSE dflt = privlib - "]" + ".SITE_PERL]" -$ ENDIF -$ rp = "Pathname for the site-specific library files? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitelib = ans -$! -$!: determine where site specific architecture-dependent libraries go. -$ IF .NOT.silent -$ THEN TYPE SYS$INPUT: -$ DECK - -The installation process will also create a directory for -architecture-dependent site-specific extensions and modules. -$ EOD -$ ENDIF -$ IF F$TYPE(sitearch) .NES. "" -$ THEN dflt = sitearch -$ ELSE dflt = sitelib - "]" + "." + archname + "]" -$ ENDIF -$ rp = "Pathname for the site-specific architecture-dependent library files? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitearch = ans -$! -$!: determine where old public architecture dependent libraries might be -$! -$!: determine where public executables go -$ IF F$TYPE(bin) .NES. "" -$ THEN dflt = bin -$! ELSE dflt = prefix - ".]" + ".BIN]" -$ ELSE dflt = "/''vms_prefix'" -$ ENDIF -$ rp = "Pathname where the public executables will reside? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ bin = ans -$! -$!: determine where add-on public executables go -$ IF F$TYPE(sitebin) .NES. "" -$ THEN dflt = sitebin -$ ELSE dflt = "''vms_prefix':[bin.''archname']" -$ ENDIF -$ rp = "Pathname where the add-on public executables should be installed? " -$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") -$ GOSUB myread -$ sitebin = ans -$! -$!: determine where manual pages are on this system -$!: What suffix to use on installed man pages -$!: see if we can have long filenames -$!: determine where library module manual pages go -$!: What suffix to use on installed man pages -$!: see what memory models we can support -$! -$ ELSE ! skipping "where install" questions, we must set some symbols -$ IF F$TYPE(archlib).EQS."" THEN - - archlib="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(bin) .EQS. "" THEN - - bin="/''vms_prefix'" -$ IF F$TYPE(privlib) .EQS. "" THEN - - privlib ="''vms_prefix':[lib]" -$ IF F$TYPE(sitearch) .EQS. "" THEN - - sitearch="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(sitelib) .EQS. "" THEN - - sitelib ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(sitebin) .EQS. "" THEN - - sitebin="''vms_prefix':[bin.''archname']" -$ ENDIF !%Config-I-VMS, skip "where install" questions -$! -$! These derived locations can be set whether we've opted to -$! skip the where install questions or not. -$! -$ IF F$TYPE(archlibexp) .EQS. "" THEN - - archlibexp="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(binexp) .EQS. "" THEN - - binexp ="''vms_prefix':[000000]" -$ IF F$TYPE(builddir) .EQS. "" THEN - - builddir ="''vms_prefix':[000000]" -$ IF F$TYPE(installarchlib) .EQS. "" THEN - - installarchlib="''vms_prefix':[lib.''archname'.''version']" -$ IF F$TYPE(installbin) .EQS. "" THEN - - installbin ="''vms_prefix':[000000]" -$ IF F$TYPE(installscript) .EQS. "" THEN - - installscript ="''vms_prefix':[utils]" -$ IF F$TYPE(installman1dir) .EQS. "" THEN - - installman1dir ="''vms_prefix':[man.man1]" -$ IF F$TYPE(installman3dir) .EQS. "" THEN - - installman3dir ="''vms_prefix':[man.man3]" -$ IF F$TYPE(installprivlib) .EQS. "" THEN - - installprivlib ="''vms_prefix':[lib]" -$ IF F$TYPE(installsitearch) .EQS. "" THEN - - installsitearch="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(installsitelib) .EQS. "" THEN - - installsitelib ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(oldarchlib) .EQS. "" THEN - - oldarchlib="''vms_prefix':[lib.''archname']" -$ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - - oldarchlibexp="''vms_prefix':[lib.''archname']" -$ IF F$TYPE(privlibexp) .EQS. "" THEN - - privlibexp ="''vms_prefix':[lib]" -$ IF F$TYPE(scriptdir) .EQS. "" THEN - - scriptdir ="''vms_prefix':[utils]" -$ IF F$TYPE(sitearchexp) .EQS. "" THEN - - sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" -$ IF F$TYPE(sitelib_stem) .EQS. "" THEN - - sitelib_stem ="''vms_prefix':[lib.site_perl]" -$ IF F$TYPE(sitelibexp) .EQS. "" THEN - - sitelibexp ="''vms_prefix':[lib.site_perl]" -$! -$!: see if we need a special compiler -$! cc_list = "cc/decc|gcc" !%Config-I-VMS, compiler symbols/commands -$! -$ nocc = "f" -$ vms_cc_dflt = "" -$ vms_cc_available = "" -$! -$ OPEN/WRITE CONFIG ccvms.c -$ WRITE CONFIG "#ifdef __DECC" -$ WRITE CONFIG "#include " !DECC is sooo picky -$ WRITE CONFIG "#endif" -$ WRITE CONFIG "#include " -$ WRITE CONFIG "int main() {" -$ WRITE CONFIG "#ifdef __DECC" -$ WRITE CONFIG " printf(""/DECC\n"");" -$ WRITE CONFIG "#else" -$ WRITE CONFIG " printf(""/VAXC\n"");" -$ WRITE CONFIG "#endif" -$ WRITE CONFIG " exit(0);" -$ WRITE CONFIG "}" -$ CLOSE CONFIG -$! -$ SET NOON -$ DEFINE/USER_MODE SYS$ERROR _NLA0: -$ DEFINE/USER_MODE SYS$OUTPUT _NLA0: -$ cc/NoObj/list=ccvms.lis ccvms.c -$ tmp = $status -$ SET ON -$ IF (silent) THEN GOSUB Shut_up -$ IF tmp.NE.%X10B90001 -$ THEN -$ IF tmp.NE.%X10000001 -$ THEN -$ nocc = "t" !%X10000001 is return from gcc -$ GOTO Gcc_initial_check -$ ENDIF -$ ENDIF -$! -$ GOSUB List_Parse -$ IF .NOT.silent THEN echo "" -$ echo "Default ""cc"" is ''line' ''archsufx' ''F$GETSYI("VERSION")'" -$ IF F$LOCATE("VAX",line).NE.F$LENGTH(line) -$ THEN -$ IF .NOT.silent -$ THEN -$ echo "Will try cc/decc..." -$ ENDIF -$ SET NOON -$ DEFINE/USER_MODE SYS$ERROR NL: -$ DEFINE/USER_MODE SYS$OUTPUT NL: -$ cc/decc/NoObj/list=ccvms.lis ccvms.c -$ tmp = $status -$ SET ON -$ IF (silent) THEN GOSUB Shut_up -$ IF tmp.NE.%X10B90001 -$ THEN -$ echo "Apparently you don't have that one." -$ ELSE -$ GOSUB List_parse -$ echo "You also have: ''line' ''archsufx' ''F$GETSYI("VERSION")'" -$ vms_cc_available = vms_cc_available + "cc/decc " -$ ENDIF -$ ELSE -$ IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line)) - - .or.(F$LOCATE("HP",F$EDIT(line,"UPCASE")).NE.F$LENGTH(line)) -$ THEN -$ vms_cc_dflt = "/decc" -$ vms_cc_available = vms_cc_available + "cc/decc " +$ ELSE +$ IF (F$LOCATE("DEC",line).NE.F$LENGTH(line)).or.(F$LOCATE("Compaq",line).NE.F$LENGTH(line)) - + .or.(F$LOCATE("HP",F$EDIT(line,"UPCASE")).NE.F$LENGTH(line)) +$ THEN +$ vms_cc_dflt = "/decc" +$ vms_cc_available = vms_cc_available + "cc/decc " $ ENDIF $ ENDIF $! @@ -1684,14 +1390,11 @@ $ DELETE/NOLOG/NOCONFIRM gccvers.lis; $! $Cxx_initial_check: $! -$! Do note that [vms]perl source files have a ways to go before they will -$! compile under CXX. -$! In order to test Configure.com with CXX invoke it with "-Dtry_cxx" on +$! In order to build with the HP C++ compiler, invoke configure.com with "-Dusecxx" on $! the command line. $! -$ IF F$TYPE(try_cxx) .EQS. "" THEN try_cxx := n -$ IF try_cxx .OR. try_cxx .EQS. "define" -$! +$ IF F$TYPE(usecxx) .EQS. "" THEN usecxx := n +$ IF usecxx .OR. usecxx .EQS. "define" $ THEN $! $ echo "Checking for CXX..." @@ -1732,7 +1435,7 @@ $ ! link && DEC C++ V1.1-001 on VMS VAX V5.5-2 $ ! link && DEC C++ V5.6-013 on OpenVMS VAX V7.1 $ IF tmp .eq. %X10000001 $ THEN -$ ld_try = "Link" +$ ld_try = "Link/nodebug" $ vms_cc_available = vms_cc_available + "cxx " $ echo "CXX and LINK are available." $ ELSE @@ -1772,7 +1475,12 @@ $ echo "Available compiler(s):" $ echo "( ''vms_cc_available')" $ IF .NOT.nocc $ THEN -$ dflt = "cc''vms_cc_dflt'" !-> "cc" in case first compile went OK +$ IF usecxx .OR. usecxx .EQS. "define" +$ THEN +$ dflt = "cxx" +$ ELSE +$ dflt = "cc''vms_cc_dflt'" !-> "cc" in case first compile went OK +$ ENDIF $ ELSE $ dflt = gcc_symbol $ ENDIF @@ -1873,11 +1581,8 @@ $ CLOSE CONFIG $ echo "You are using Dec C ''line'" $ ccversion = line $ Dec_C_Version = F$INTEGER(line) -$ IF Dec_C_Version .GE. 60200000 .AND. archname .NES. "VMS_VAX" -$ THEN -$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." -$ ccflags = ccflags + "/NOANSI_ALIAS" -$ ENDIF +$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." +$ ccflags = ccflags + "/NOANSI_ALIAS" $ DELETE/NOLOG/NOCONFIRM deccvers.*; $ ENDIF $Gcc_check: @@ -2041,6 +1746,8 @@ $ echo "You are using CXX ''line'" $ cxxversion = line $ ccversion = line $ d_cplusplus = "define" +$ echo4 "adding /NOANSI_ALIAS qualifier to ccflags." +$ ccflags = ccflags + "/NOANSI_ALIAS" $ CALL Cxx_demangler_cleanup $ ELSE $ d_cplusplus = "undef" @@ -2068,17 +1775,11 @@ $! $List_Parse: $ OPEN/READ CONFIG ccvms.lis $ READ CONFIG line -$ IF archname .EQS. "VMS_VAX" +$ IF F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP" $ THEN -$ read CONFIG line -$ archsufx = "VAX" +$ archsufx = "AXP" $ ELSE -$ IF archname .EQS. "VMS_AXP" -$ THEN -$ archsufx = "AXP" -$ ELSE -$ archsufx = "IA64" -$ ENDIF +$ archsufx = "IA64" $ ENDIF $ CLOSE CONFIG $ line = F$EDIT(line,"TRIM,COMPRESS") @@ -2223,15 +1924,6 @@ $!: Looking for optional libraries $!: see if nm is to be used to determine whether a symbol is defined or not $!: get list of predefined functions in a handy place $!: see if we have sigaction or sigprocmask -$!: see whether socketshr exists -$ IF (F$SEARCH(F$PARSE("SocketShr","Sys$Share:.Exe")).NES."") -$ THEN -$ Has_socketshr = "T" -$ echo "" -$ echo4 "Hmm... Looks like you have SOCKETSHR Berkeley networking support." -$ ELSE -$ Has_socketshr = "F" -$ ENDIF $ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. (ccname .EQS. "CXX") $ THEN $ Has_Dec_C_Sockets = "T" @@ -2240,20 +1932,14 @@ $ echo4 "Hmm... Looks like you have Dec C Berkeley networking support." $ ELSE $ Has_Dec_C_Sockets = "F" $ ENDIF -$ ! Hey, we've got both. Default to Dec C, then, since it's better -$ IF Has_socketshr .OR. Has_Dec_C_Sockets +$! +$ IF Has_Dec_C_Sockets $ THEN $ echo "" -$ echo "You have sockets available. Which socket stack do you want to" -$ echo "build into Perl?" -$ IF Has_Dec_C_Sockets -$ THEN -$ dflt = "DECC" -$ ELSE -$ dflt = "SOCKETSHR" -$ ENDIF -$ rp = "Choose socket stack (NONE" -$ IF Has_socketshr THEN rp = rp + ",SOCKETSHR" +$ echo "You have sockets available via the C library. Should socket support" +$ echo "be built into Perl?" +$ dflt = "DECC" +$ rp = "Choose socket support option (NONE" $ IF Has_Dec_C_Sockets THEN rp = rp + ",DECC" $ rp = rp + ") [''dflt'] " $ GOSUB myread @@ -2261,7 +1947,6 @@ $ Has_Dec_C_Sockets = "F" $ Has_socketshr = "F" $ ans = F$EDIT(ans,"TRIM,COMPRESS,LOWERCASE") $ IF ans.eqs."decc" THEN Has_Dec_C_Sockets = "T" -$ IF ans.eqs."socketshr" THEN Has_socketshr = "T" $ ENDIF $! $! @@ -2282,7 +1967,6 @@ $ use_vmsdebug_perl = ans $ IF use_vmsdebug_perl $ THEN $ usevmsdebug = "define" -$ macros = macros + """__DEBUG__=1""," $ ELSE $ usevmsdebug = "undef" $ ENDIF @@ -2294,158 +1978,44 @@ $ 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 $ use_debugging_perl = ans $! -$! Ask if they want to build with MULTIPLICITY -$ echo "" -$ echo "Perl can be built so that multiple Perl interpreters can coexist" -$ echo "within the same Perl executable." -$ echo "There is some performance overhead, however, so you" -$ echo "probably do not want to choose this unless you are going to be" -$ echo "doing things with embedded perl." -$ bool_dflt = "n" -$ if f$type(usemultiplicity) .nes. "" -$ then -$ if usemultiplicity .or. usemultiplicity .eqs. "define" then bool_dflt = "y" -$ endif -$ rp = "Build Perl for multiplicity? [''bool_dflt'] " -$ GOSUB myread -$ IF ans -$ THEN -$ usemultiplicity="define" -$ ELSE -$ usemultiplicity="undef" -$ ENDIF $! -$! Ask if they want to build with 64-bit support -$ IF (archname.NES."VMS_VAX").and.("''f$extract(1,3, f$getsyi(""version""))'".ges."7.1") +$! Ask about threads, if appropriate +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN -$ bool_dflt = "n" -$ IF F$TYPE(use64bitint) .NES. "" -$ THEN -$ IF use64bitint .OR. use64bitint .eqs. "define" THEN bool_dflt = "y" -$ ENDIF $ echo "" -$ echo "You have natively 64-bit long integers." +$ echo "Perl can be built to offer a form of threading support on some systems." +$ echo "To do so, configure.com can be run with -""Dusethreads""." $ echo "" -$ echo "Perl can be built to take advantage of 64-bit integer types" -$ echo "on some systems, To do so, Configure can be run with -Duse64bitint." -$ echo "Choosing this option will most probably introduce binary incompatibilities." -$ echo "" -$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." -$ rp = "Try to use 64-bit integers, if available? [''bool_dflt'] " -$ GOSUB myread -$ use64bitint = ans -$! -$ bool_dflt = "n" -$ IF F$TYPE(use64bitall) .NES. "" -$ THEN -$ IF use64bitall .OR. use64bitall .eqs. "define" THEN bool_dflt = "y" -$ ENDIF -$ echo "" -$ echo "You may also choose to try maximal 64-bitness. It means using as much" -$ echo "64-bitness as possible on the platform. This in turn means even more" -$ echo "binary incompatibilities. On the other hand, your platform may not" -$ echo "have any more 64-bitness available than what you already have chosen." -$ echo "" -$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." -$ rp = "Try to use maximal 64-bit support, if available? [''bool_dflt'] " -$ GOSUB myread -$ use64bitall=ans -$ IF use64bitall .AND. .NOT. use64bitint -$ THEN -$ echo "" -$ echo "Since you have chosen a maximally 64-bit build, I'm also turning on" -$ echo "the use of 64-bit integers." -$ use64bitint="Y" -$ ENDIF -$! -$ bool_dflt = use64bitall -$ IF F$TYPE(uselargefiles) .NES. "" -$ THEN -$ IF uselargefiles .OR. uselargefiles .eqs. "define" THEN bool_dflt = "y" -$ ENDIF -$ echo "" -$ echo "Perl can be built to understand large files (files larger than 2 gigabytes)" -$ echo "on some systems. To do so, Configure can be run with -Duselargefiles." -$ echo "" -$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." -$ 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" -$ THEN -$ usesitecustomize = "define" -$ ELSE -$ usesitecustomize = "undef" -$ ENDIF -$! -$! Ask about threads, if appropriate -$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" -$ THEN -$ echo "" -$ echo "Perl can be built to take advantage of threads on some systems." -$ echo "To do so, configure.com can be run with -""Dusethreads""." -$ echo "" -$ echo "Note that Perl built with threading support runs slightly slower" -$ echo "and uses more memory than plain Perl. The current implementation" -$ echo "is believed to be stable, but it is fairly new, and so should be" -$ echo "treated with caution." +$ echo "Note that Perl built with threading support runs slightly slower" +$ echo "and uses slightly more memory than plain Perl." $ echo "" $ bool_dflt = "n" $ if f$type(usethreads) .nes. "" $ then $ if usethreads .or. usethreads .eqs. "define" then bool_dflt="y" $ endif -$! Catch cases where user specified ithreads or 5005threads but +$! Catch cases where user specified ithreads but $! forgot -Dusethreads $ if f$type(useithreads) .nes. "" $ then $ if useithreads .or. useithreads .eqs. "define" then bool_dflt="y" $ endif -$ if f$type(use5005threads) .nes. "" -$ then -$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="y" -$ endif $ echo "If this doesn't make any sense to you, just accept the default '" + bool_dflt + "'." $ rp = "Build a threading Perl? [''bool_dflt'] " $ GOSUB myread $ if ans $ THEN +$ usethreads = "define" $ use_threads="T" -$ ! Shall we do the 5.005-type threads, or IThreads? -$ echo "Since release 5.6, Perl has had two different threading implementations," -$ echo "the newer interpreter-based version (ithreads) with one interpreter per" -$ echo "thread, and the older 5.005 version (5005threads)." -$ echo "The 5005threads version is effectively unmaintained and will probably be" -$ echo "removed in Perl 5.10, so there should be no need to build a Perl using it" -$ echo "unless needed for backwards compatibility with some existing 5.005threads" -$ echo "code." -$ echo "" $ bool_dflt = "y" $ if f$type(useithreads) .nes. "" $ then @@ -2453,17 +2023,16 @@ $ if useithreads .eqs. "undef" then bool_dflt="n" $ endif $ if f$type(use5005threads) .nes. "" $ then -$ if use5005threads .or. use5005threads .eqs. "define" then bool_dflt="n" +$ if use5005threads .or. use5005threads .eqs. "define" +$ then +$ echo "5.005 threads are no longer supported" +$ exit 44 +$ endif $ endif -$ rp = "Use the newer intepreter-based ithreads? [''bool_dflt'] " +$ rp = "Use the newer interpreter-based ithreads? [''bool_dflt'] " $ GOSUB myread $ use_ithreads=ans -$ if use_ithreads -$ THEN -$ use_5005_threads="N" -$ ELSE -$ use_5005_threads="Y" -$ ENDIF +$ use_5005_threads="N" $ ! Are they on VMS 7.1 or greater? $ IF "''f$extract(1,3, f$getsyi(""version""))'" .GES. "7.1" $ THEN @@ -2484,7 +2053,7 @@ $ THEN $ 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") +$ IF ("''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." @@ -2505,146 +2074,637 @@ $ ENDIF $ ENDIF $ ENDIF $ ENDIF +$ ELSE +$ usethreads = "undef" +$ ENDIF +$ ENDIF +$ IF F$TYPE(usethreadupcalls) .EQS. "" THEN usethreadupcalls = "undef" +$ IF F$TYPE(usekernelthreads) .EQS. "" THEN usekernelthreads = "undef" +$! +$! Ask if they want to build with MULTIPLICITY +$ echo "" +$ echo "Perl can be built so that multiple Perl interpreters can coexist" +$ echo "within the same Perl executable." +$ IF usethreads .OR. usethreads .EQS. "define" +$ THEN +$ echo "This multiple interpreter support is required for interpreter-based threads." +$ usemultiplicity="define" +$ ELSE +$ bool_dflt = "n" +$ if f$type(usemultiplicity) .nes. "" +$ then +$ if usemultiplicity .or. usemultiplicity .eqs. "define" then bool_dflt = "y" +$ endif +$ rp = "Build Perl for multiplicity? [''bool_dflt'] " +$ GOSUB myread +$ IF ans +$ THEN +$ usemultiplicity="define" +$ ELSE +$ usemultiplicity="undef" +$ ENDIF +$ ENDIF +$! +$! Ask if they want to build with 64-bit support +$ bool_dflt = "n" +$ IF F$TYPE(use64bitint) .NES. "" +$ THEN +$ IF use64bitint .OR. use64bitint .eqs. "define" THEN bool_dflt = "y" +$ ENDIF +$ echo "" +$ echo "You have natively 64-bit long integers." +$ echo "" +$ echo "Perl can be built to take advantage of 64-bit integer types" +$ echo "on some systems, To do so, Configure can be run with -Duse64bitint." +$ echo "Choosing this option will most probably introduce binary incompatibilities." +$ echo "" +$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." +$ rp = "Try to use 64-bit integers, if available? [''bool_dflt'] " +$ GOSUB myread +$ use64bitint = ans +$! +$ bool_dflt = "n" +$ IF F$TYPE(use64bitall) .NES. "" +$ THEN +$ IF use64bitall .OR. use64bitall .eqs. "define" THEN bool_dflt = "y" +$ ENDIF +$ echo "" +$ echo "You may also choose to try maximal 64-bitness. It means using as much" +$ echo "64-bitness as possible on the platform. This in turn means even more" +$ echo "binary incompatibilities. On the other hand, your platform may not" +$ echo "have any more 64-bitness available than what you already have chosen." +$ echo "" +$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." +$ rp = "Try to use maximal 64-bit support, if available? [''bool_dflt'] " +$ GOSUB myread +$ use64bitall=ans +$ IF use64bitall .AND. .NOT. use64bitint +$ THEN +$ echo "" +$ echo "Since you have chosen a maximally 64-bit build, I'm also turning on" +$ echo "the use of 64-bit integers." +$ use64bitint="Y" +$ ENDIF +$! +$ bool_dflt = use64bitall +$ IF F$TYPE(uselargefiles) .NES. "" +$ THEN +$ IF uselargefiles .OR. uselargefiles .eqs. "define" THEN bool_dflt = "y" +$ ENDIF +$ echo "" +$ echo "Perl can be built to understand large files (files larger than 2 gigabytes)" +$ echo "on some systems. To do so, Configure can be run with -Duselargefiles." +$ echo "" +$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." +$ 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 +$! +$! +$ IF usesitecustomize .OR. usesitecustomize .eqs. "define" +$ THEN +$ usesitecustomize = "define" +$ ELSE +$ usesitecustomize = "undef" +$ ENDIF +$! +$! Case sensitive? +$ echo "" +$ echo "By default, perl (and pretty much everything else on VMS) uses" +$ echo "case-insensitive linker symbols. Which is to say, when the" +$ echo "underlying C code makes a call to a routine called Perl_foo in" +$ echo "the source, the name in the object modules or shareable images" +$ echo "is really PERL_FOO. There are some packages that use an" +$ echo "embedded perl interpreter that instead require case-sensitive" +$ echo "linker symbols." +$ echo "" +$ echo "If you have no idea what this means, and do not have" +$ echo "any program requiring anything, choose the default." +$ bool_dflt = be_case_sensitive +$ if f$type(usecasesensitive) .nes. "" +$ then +$ if usecasesensitive .or. usecasesensitive .eqs. "define" then bool_dflt = "y" +$ if f$extract(0,1,f$edit(usecasesensitive,"collapse,upcase")).eqs."N" .or. usecasesensitive .eqs. "undef" then bool_dflt = "n" +$ endif +$ rp = "Build with case-sensitive symbols? [''bool_dflt'] " +$ GOSUB myread +$ be_case_sensitive = ans +$! +$! Shortened symbols? +$ echo "" +$ echo "The VMS linker does not handle symbol names longer than 31 characters," +$ echo "but the compiler can shorten long symbols if requested." +$ bool_dflt = shorten_long_symbols +$ if f$type(useshortenedsymbols) .nes. "" +$ then +$ if useshortenedsymbols .or. useshortenedsymbols .eqs. "define" then bool_dflt = "y" +$ if f$extract(0,1,f$edit(useshortenedsymbols,"collapse,upcase")) .eqs. "N" .or. useshortenedsymbols .eqs. "undef" then bool_dflt = "n" +$ endif +$ rp = "Build with long symbols shortened? [''bool_dflt'] " +$ GOSUB myread +$ shorten_long_symbols = ans +$! IEEE math? +$ echo "" +$ 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 +$ if f$type(useieee) .nes. "" +$ then +$ if useieee .or. useieee .eqs. "define" +$ then +$ bool_dflt="y" +$ else +$ bool_dflt="n" +$ endif +$ endif +$ rp = "Use IEEE math? [''bool_dflt'] " +$ GOSUB myread +$ use_ieee_math = ans +$ useieee = "undef" +$ usecasesensitive = "undef" +$ useshortenedsymbols = "undef" +$ if (use_ieee_math) then useieee = "define" +$ if (be_case_sensitive) then usecasesensitive = "define" +$ if (shorten_long_symbols) then useshortenedsymbols = "define" +$! Unlink all versions? +$ echo "" +$ echo "By default, Perl's unlink() provides VMS-like behavior and only" +$ echo "deletes the latest version of a file. Enabling this option builds" +$ echo "Perl so that unlink() deletes all versions of a file." +$ bool_dflt = unlink_all_versions +$ if f$type(unlink_all_versions) .nes. "" +$ then +$ if unlink_all_versions .or. unlink_all_versions .eqs. "define" +$ then +$ bool_dflt="y" +$ else +$ bool_dflt="n" +$ endif +$ endif +$ rp = "Make unlink() delete all versions of a file? [''bool_dflt'] " +$ GOSUB myread +$ unlink_all_versions = ans +$ IF unlink_all_versions +$ THEN +$ 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" +$ echo "/INCLUDE=(whatever) and /DEFINE=(whatever), flags and any other flags" +$ echo "or qualifiers used by the compiler." +$ echo "" +$ echo "To use no flags, specify the word ""none""." +$ dflt = user_c_flags +$ rp = "Any additional cc flags? [''dflt'] " +$ GOSUB myread +$ IF ans .EQS. "none" THEN ans = "" +$ user_c_flags = "''ans'" +$! +$! 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." +$ bool_dflt = "y" +$ if f$type(usesecurelog) .nes. "" +$ then +$ if f$extract(0,1,f$edit(usesecurelog,"collapse,upcase")).eqs."N" .or. usesecurelog .eqs. "undef" then bool_dflt = "n" +$ endif +$ rp = "Use secure logical name translation? [''bool_dflt'] " +$ GOSUB myread +$ d_secintgenv = ans +$ usesecurelog = "undef" +$ if (d_secintgenv) then usesecurelog = "define" +$! +$! 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 "" +$ echo "This is currently broken in some configurations. Only enable it if" +$ echo "you know what you are doing." +$ bool_dflt = "n" +$ if f$type(usedefaulttypes) .nes. "" +$ then +$ if usedefaulttypes .or. usedefaulttypes .eqs. "define" then bool_dflt="y" +$ endif +$ rp = "Always use default file types? [''bool_dflt'] " +$ GOSUB myread +$ d_alwdeftype = ans +$ usedefaulttypes = "undef" +$ if (d_alwdeftype) then usedefaulttypes = "define" +$! +$ dflt = archname +$ rp = "What is your architecture name? [''archname'] " +$ GOSUB myread +$ IF ans.NES."" +$ THEN +$ ans = F$EDIT(ans,"COLLAPSE, UPCASE") +$ IF (ans.NES.archname) !.AND.knowitall +$ THEN +$ echo4 "I'll go with ''archname' anyway..." +$ ENDIF +$ ENDIF +$! +$ bool_dflt = "n" +$ if f$type(useversionedarchname) .nes. "" +$ then +$ if useversionedarchname .or. useversionedarchname .eqs. "define" then bool_dflt = "y" +$ endif +$ rp = "Add the Perl API version to your archname? [''bool_dflt'] " +$ GOSUB myread +$ IF ans +$ THEN +$ useversionedarchname = "define" +$ IF F$LOCATE("-''version'", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-''version'" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -''version'." +$ ENDIF +$ ELSE +$ useversionedarchname = "undef" +$ ENDIF +$! +$ IF usethreads .OR. usethreads .EQS. "define" +$ THEN +$ echo4 "Threads selected." +$ IF F$LOCATE("-thread", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-thread" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -thread." +$ ENDIF +$ ENDIF +$! +$ IF usemultiplicity .OR. usemultiplicity .EQS. "define" +$ THEN +$ echo4 "Multiplicity selected." +$ IF F$LOCATE("-multi", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-multi" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -multi." +$ ENDIF +$ ENDIF +$! +$ IF uselongdouble .OR. uselongdouble .EQS. "define" +$ THEN +$ echo4 "Long doubles selected." +$ IF F$LOCATE("-ld", archname) .EQ. F$LENGTH(archname) +$ THEN +$ archname = "''archname'-ld" +$ echo4 "...setting architecture name to ''archname'." +$ ELSE +$ echo4 "...and architecture name already has -ld." +$ ENDIF +$ ENDIF +$! +$ bool_dflt = "n" +$ vms_prefix = "perl_root" +$ vms_prefixup = F$EDIT(vms_prefix,"UPCASE") +$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''bool_dflt'] " +$ GOSUB myread +$ IF .NOT. ans +$ THEN +$ sharedperl = "N" +$ ELSE +$ sharedperl = "Y" +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_AXP") +$ THEN +$ macros = macros + """AXE=1""," +$ ENDIF +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") +$ THEN +$ macros = macros + """IXE=1""," +$ ENDIF +$ ENDIF +$! +$!: is AFS running? !sfn +$!: decide how portable to be. Allow command line overrides. !sfn +$!: set up shell script to do ~ expansion !sfn +$!: expand filename !sfn +$!: now set up to get a file name !sfn +$! +$ IF F$TYPE(prefix) .EQS. "" +$ THEN +$ prefix = F$ENVIRONMENT("DEFAULT") - ".UU]" + "]" +$ prefix = F$PARSE(prefix,,,,"NO_CONCEAL") - "][" - "000000." - ".000000" - ".;" +$ 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 - "_ROOT." +$!: determine root of directory hierarchy where package will be installed. +$ dflt = prefix +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "By default, ''package' will be installed in ''dflt', pod" +$ echo "pages under ''prefixbase'.LIB.POD], etc..., i.e. with ''dflt' as prefix for" +$ echo "all installation directories." +$ echo "On ''osname' the prefix is used to DEFINE the ''vms_prefixup' prior to installation" +$ echo "as well as during subsequent use of ''package' via ''packageup'_SETUP.COM." +$ ENDIF +$ rp = "Installation prefix to use (for ''vms_prefixup')? [ ''dflt' ] " +$ GOSUB myread +$ IF ans.NES."" +$ THEN +$ prefix = ans +$ IF F$LOCATE(".]",ans) .EQ. F$LENGTH(ans) THEN prefix = prefix - "]" + ".]" +$ ELSE +$ prefix = dflt +$ ENDIF +$ perl_root = prefix +$! +$! Check here for pre-existing PERL_ROOT. +$! -> ask if removal desired. +$! Check here for writability of requested PERL_ROOT if it is not the default (cwd). +$! -> recommend letting PERL_ROOT be PERL_SRC if requested PERL_ROOT is not writable. +$! +$ tmp = perl_root - ".]" + "]" +$ dflt = f$parse(tmp,,,,) +$ IF dflt .eqs. "" +$ THEN +$ echo4 "''tmp' does not yet exist." +$! create/directory 'tmp' +$ ELSE +$ echo4 "''tmp' already exists." +$ ENDIF +$! +$ vms_skip_install = "true" +$ bool_dflt = "y" +$! echo "" +$ rp = "Skip the remaining """"where install"""" questions? [''bool_dflt'] " +$ GOSUB myread +$ IF (.NOT.ans) THEN vms_skip_install = "false" +$ IF (.NOT.vms_skip_install) +$ THEN +$! +$!: set the prefixit variable, to compute a suitable default value +$! +$!: determine where private library files go +$!: Usual default is /usr/local/lib/perl5. Also allow things like +$!: /opt/perl/lib, since /opt/perl/lib/perl5 would be redundant. +$ IF .NOT.silent +$ THEN +$ TYPE SYS$INPUT: +$ DECK + +There are some auxiliary files for perl5 that need to be put into a +private library directory that is accessible by everyone. +$ EOD +$ ENDIF +$ IF F$TYPE(privlib) .NES. "" +$ THEN dflt = privlib +$ ELSE dflt = "''vms_prefix':[lib]" +$ ENDIF +$ rp = "Pathname where the private library files will reside? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ privlib = ans +$! +$ ENDIF !%Config-I-VMS, skip remaining "where install" questions +$! +$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true +$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = "" +$ IF perl_symbol +$ THEN bool_dflt = "y" +$ ELSE bool_dflt = "n" +$ ENDIF +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "You may choose to write ''packageup'_SETUP.COM to assign a foreign" +$ echo "symbol to invoke ''package', which is the usual method." +$ echO "If you do not do so then you would need a DCL command verb at the" +$ echo "process or the system wide level." +$ ENDIF +$ rp = "Invoke perl as a global symbol foreign command? [''bool_dflt'] " +$ GOSUB myread +$ IF (.NOT.ans) THEN perl_symbol = "false" +$! +$ IF (.NOT.perl_symbol) +$ THEN +$ IF perl_verb .EQS. "DCLTABLES" +$ THEN bool_dflt = "n" +$ ELSE bool_dflt = "y" +$ ENDIF +$ IF .NOT.silent +$ THEN +$ echo "" +$ echo "Since you won't be using a symbol you must choose to put the ''packageup'" +$ echo "verb in a per-process table or in the system wide DCLTABLES (which" +$ echo "would require write privilege)." +$ ENDIF +$ rp = "Invoke perl as a per process command verb? [ ''bool_dflt' ] " +$ GOSUB myread +$ IF (.NOT.ans) +$ THEN perl_verb = "DCLTABLES" +$ ELSE perl_verb = "PROCESS" +$ ENDIF +$ ENDIF ! (.NOT.perl_symbol) +$! +$ IF (.NOT.vms_skip_install) +$ THEN +$!: set the prefixup variable, to restore leading tilde escape !sfn +$! +$!: determine where public architecture dependent libraries go +$ IF (.NOT.silent) +$ THEN +$ echo "" +$ echo "''package' contains architecture-dependent library files. If you are" +$ ENDIF +$ IF (.NOT.silent) +$ THEN +$ TYPE SYS$INPUT: +$ DECK +sharing libraries in a heterogeneous environment, you might store +these files in a separate location. Otherwise, you can just include +them with the rest of the public library files. +$ EOD +$ ENDIF +$ IF F$TYPE(archlib) .NES. "" +$ THEN dflt = archlib +$ ELSE dflt = privlib - "]" + "." + archname + "." + version + "]" +$ ENDIF +$ rp = "Where do you want to put the public architecture-dependent libraries? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ archlib = ans +$! +$ ENDIF !%Config-I-VMS, skip "where install" questions +$ IF (.NOT.vms_skip_install) +$ THEN +$!: it so happens the Eunice I know will not run shell scripts in Unix format +$! +$!: see if setuid scripts can be secure !sfn +$!: now see if they want to do setuid emulation !sfn +$! +$!: determine where site specific libraries go. +$ IF .NOT.silent +$ THEN +$ TYPE SYS$INPUT: +$ DECK + +The installation process will also create a directory for +site-specific extensions and modules. Some users find it convenient +to place all local files in this directory rather than in the main +distribution directory. +$ EOD +$ ENDIF +$ IF F$TYPE(sitelib) .NES. "" +$ THEN dflt = sitelib +$ ELSE dflt = privlib - "]" + ".SITE_PERL]" +$ ENDIF +$ rp = "Pathname for the site-specific library files? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ sitelib = ans +$! +$!: determine where site specific architecture-dependent libraries go. +$ IF .NOT.silent +$ THEN TYPE SYS$INPUT: +$ DECK + +The installation process will also create a directory for +architecture-dependent site-specific extensions and modules. +$ EOD +$ ENDIF +$ IF F$TYPE(sitearch) .NES. "" +$ THEN dflt = sitearch +$ ELSE dflt = sitelib - "]" + "." + archname + "]" $ 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? -$ echo "" -$ echo "By default, perl (and pretty much everything else on VMS) uses" -$ echo "case-insensitive linker symbols. Which is to say, when the" -$ echo "underlying C code makes a call to a routine called Perl_foo in" -$ echo "the source, the name in the object modules or shareable images" -$ echo "is really PERL_FOO. There are some packages that use an" -$ echo "embedded perl interpreter that instead require case-sensitive" -$ echo "linker symbols." -$ echo "" -$ echo "If you have no idea what this means, and do not have" -$ echo "any program requiring anything, choose the default." -$ bool_dflt = be_case_sensitive -$ if f$type(usecasesensitive) .nes. "" -$ then -$ if usecasesensitive .or. usecasesensitive .eqs. "define" then bool_dflt = "y" -$ if f$extract(0,1,f$edit(usecasesensitive,"collapse,upcase")).eqs."N" .or. usecasesensitive .eqs. "undef" then bool_dflt = "n" -$ endif -$ rp = "Build with case-sensitive symbols? [''bool_dflt'] " +$ rp = "Pathname for the site-specific architecture-dependent library files? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread -$ be_case_sensitive = ans -$! IEEE math? -$ echo "" -$ 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 -$ if f$type(useieee) .nes. "" -$ then -$ if useieee .or. useieee .eqs. "define" -$ then -$ bool_dflt="y" -$ else -$ bool_dflt="n" -$ endif -$ endif -$ rp = "Use IEEE math? [''bool_dflt'] " +$ sitearch = ans +$! +$!: determine where old public architecture dependent libraries might be +$! +$!: determine where public executables go +$ IF F$TYPE(bin) .NES. "" +$ THEN dflt = bin +$! ELSE dflt = prefix - ".]" + ".BIN]" +$ ELSE dflt = "/''vms_prefix'" +$ ENDIF +$ rp = "Pathname where the public executables will reside? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") $ GOSUB myread -$ use_ieee_math = ans -$ ELSE -$ be_case_sensitive = "n" -$ use_ieee_math = "n" -$ ENDIF -$ useieee = "undef" -$ usecasesensitive = "undef" -$ if (use_ieee_math) then useieee = "define" -$ if (be_case_sensitive) then usecasesensitive = "define" -$! Unlink all versions? -$ echo "" -$ echo "By default, Perl's unlink() provides VMS-like behavior and only" -$ echo "deletes the latest version of a file. Enabling this option builds" -$ echo "Perl so that unlink() deletes all versions of a file." -$ bool_dflt = unlink_all_versions -$ if f$type(unlink_all_versions) .nes. "" -$ then -$ if unlink_all_versions .or. unlink_all_versions .eqs. "define" -$ then -$ bool_dflt="y" -$ else -$ bool_dflt="n" -$ endif -$ endif -$ rp = "Make unlink() delete all versions of a file? [''bool_dflt'] " -$ GOSUB myread -$ unlink_all_versions = ans -$ IF unlink_all_versions -$ THEN -$ d_unlink_all_versions = "define" -$ ELSE -$ d_unlink_all_versions = "undef" -$ ENDIF +$ bin = ans $! -$! CC Flags -$ echo "" -$ echo "Your compiler may want other flags. For this question you should include" -$ echo "/INCLUDE=(whatever) and /DEFINE=(whatever), flags and any other flags" -$ echo "or qualifiers used by the compiler." -$ echo "" -$ echo "To use no flags, specify the word ""none""." -$ dflt = user_c_flags -$ rp = "Any additional cc flags? [''dflt'] " -$ GOSUB myread -$ IF ans .EQS. "none" THEN ans = "" -$ user_c_flags = "''ans'" +$!: determine where add-on public executables go +$ IF F$TYPE(sitebin) .NES. "" +$ THEN dflt = sitebin +$ ELSE dflt = "''vms_prefix':[bin.''archname']" +$ ENDIF +$ rp = "Pathname where the add-on public executables should be installed? " +$ rp = F$FAO("!AS!/!AS",rp,"[ ''dflt' ] ") +$ GOSUB myread +$ sitebin = ans $! -$! 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." -$ bool_dflt = "y" -$ if f$type(usesecurelog) .nes. "" -$ then -$ if f$extract(0,1,f$edit(usesecurelog,"collapse,upcase")).eqs."N" .or. usesecurelog .eqs. "undef" then bool_dflt = "n" -$ endif -$ rp = "Use secure logical name translation? [''bool_dflt'] " -$ GOSUB myread -$ d_secintgenv = ans -$ usesecurelog = "undef" -$ if (d_secintgenv) then usesecurelog = "define" +$!: determine where manual pages are on this system +$!: What suffix to use on installed man pages +$!: see if we can have long filenames +$!: determine where library module manual pages go +$!: What suffix to use on installed man pages +$!: see what memory models we can support $! -$! 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 "" -$ echo "This is currently broken in some configurations. Only enable it if" -$ echo "you know what you are doing." -$ bool_dflt = "n" -$ if f$type(usedefaulttypes) .nes. "" -$ then -$ if usedefaulttypes .or. usedefaulttypes .eqs. "define" then bool_dflt="y" -$ endif -$ rp = "Always use default file types? [''bool_dflt'] " -$ GOSUB myread -$ d_alwdeftype = ans -$ usedefaulttypes = "undef" -$ if (d_alwdeftype) then usedefaulttypes = "define" +$ ELSE ! skipping "where install" questions, we must set some symbols +$ IF F$TYPE(archlib).EQS."" THEN - + archlib="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(bin) .EQS. "" THEN - + bin="/''vms_prefix'" +$ IF F$TYPE(privlib) .EQS. "" THEN - + privlib ="''vms_prefix':[lib]" +$ IF F$TYPE(sitearch) .EQS. "" THEN - + sitearch="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(sitelib) .EQS. "" THEN - + sitelib ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(sitebin) .EQS. "" THEN - + sitebin="''vms_prefix':[bin.''archname']" +$ ENDIF !%Config-I-VMS, skip "where install" questions +$! +$! These derived locations can be set whether we've opted to +$! skip the where install questions or not. +$! +$ IF F$TYPE(archlibexp) .EQS. "" THEN - + archlibexp="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(binexp) .EQS. "" THEN - + binexp ="''vms_prefix':[000000]" +$ IF F$TYPE(builddir) .EQS. "" THEN - + builddir ="''vms_prefix':[000000]" +$ IF F$TYPE(installarchlib) .EQS. "" THEN - + installarchlib="''vms_prefix':[lib.''archname'.''version']" +$ IF F$TYPE(installbin) .EQS. "" THEN - + installbin ="''vms_prefix':[000000]" +$ IF F$TYPE(installscript) .EQS. "" THEN - + installscript ="''vms_prefix':[utils]" +$ IF F$TYPE(installman1dir) .EQS. "" THEN - + installman1dir ="''vms_prefix':[man.man1]" +$ IF F$TYPE(installman3dir) .EQS. "" THEN - + installman3dir ="''vms_prefix':[man.man3]" +$ IF F$TYPE(installprivlib) .EQS. "" THEN - + installprivlib ="''vms_prefix':[lib]" +$ IF F$TYPE(installsitearch) .EQS. "" THEN - + installsitearch="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(installsitelib) .EQS. "" THEN - + installsitelib ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(oldarchlib) .EQS. "" THEN - + oldarchlib="''vms_prefix':[lib.''archname']" +$ IF F$TYPE(oldarchlibexp) .EQS. "" THEN - + oldarchlibexp="''vms_prefix':[lib.''archname']" +$ IF F$TYPE(privlibexp) .EQS. "" THEN - + privlibexp ="''vms_prefix':[lib]" +$ IF F$TYPE(scriptdir) .EQS. "" THEN - + scriptdir ="''vms_prefix':[utils]" +$ IF F$TYPE(sitearchexp) .EQS. "" THEN - + sitearchexp ="''vms_prefix':[lib.site_perl.''archname']" +$ IF F$TYPE(sitelib_stem) .EQS. "" THEN - + sitelib_stem ="''vms_prefix':[lib.site_perl]" +$ IF F$TYPE(sitelibexp) .EQS. "" THEN - + sitelibexp ="''vms_prefix':[lib.site_perl]" $! $! determine whether to use malloc wrapping $ echo "" @@ -2703,37 +2763,116 @@ $ if ans.eqs."TWO_POT" then use_two_pot_malloc = "Y" $ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y" $ ENDIF $! -$ known_extensions = "" +$ xs_extensions = "" $ xxx = "" $ 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: +$! +$ IF extspec .EQS. "Scalar/List/Utils" THEN extspec = "List/Util" +$ IF extspec .EQS. "PathTools" THEN extspec = "Cwd" +$! +$ xxx = xs_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. "" - + .AND. extension_dir_name .NES. "VMS-Filespec" +$ 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 +$ xs_extensions = xs_extensions + " ''extspec'" +$ ENDIF $ goto ext_loop $end_ext: $ close CONFIG $ DELETE/SYMBOL xxx -$ known_extensions = F$EDIT(known_extensions,"TRIM,COMPRESS") -$ dflt = known_extensions -$ IF ccname .NES. "DEC" .AND. ccname .NES. "CXX" -$ THEN -$ dflt = dflt - "POSIX" ! not with VAX C or GCC -$ ENDIF +$ DELETE/SYMBOL idx +$ DELETE/SYMBOL extspec +$ DELETE/SYMBOL extlen +$ DELETE/SYMBOL extension_dir_name +$ xs_extensions = F$EDIT(xs_extensions,"TRIM,COMPRESS") +$ dflt = xs_extensions $ dflt = dflt - "ByteLoader" ! needs to be ported $ dflt = dflt - "DB_File" ! needs to be ported $ dflt = dflt - "GDBM_File" ! needs porting/special library @@ -2741,19 +2880,16 @@ $ dflt = dflt - "IPC/SysV" ! needs to be ported $ dflt = dflt - "NDBM_File" ! needs porting/special library $ dflt = dflt - "ODBM_File" ! needs porting/special library $ dflt = dflt - "Sys/Syslog" ! needs porting/special library "GDBM_File macro LOG_DEBUG" -$ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets +$ IF .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 "" @@ -2765,7 +2901,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 "" @@ -2929,15 +3065,30 @@ $ IF use_ieee_math $ THEN $ extra_flags = "''extra_flags'" + "/float=ieee/ieee=denorm" $ ELSE -$ IF (archname.EQS."VMS_IA64") +$ IF (F$ELEMENT(0, "-", archname).EQS."VMS_IA64") $ THEN $ extra_flags = "''extra_flags'" + "/float=g_float" $ ENDIF $ ENDIF +$ names_flags = "" $ IF be_case_sensitive $ THEN -$ extra_flags = "''extra_flags'" + "/Names=As_Is" +$ names_flags = "AS_IS" +$ ENDIF +$ IF shorten_long_symbols +$ THEN +$ IF be_case_sensitive +$ THEN +$ names_flags = "''names_flags',SHORTENED" +$ ELSE +$ names_flags = "SHORTENED" +$ ENDIF +$ ENDIF +$ IF F$LENGTH(names_flags) .ne. 0 +$ THEN +$ extra_flags = "''extra_flags'" + "/NAMES=(''names_flags')" $ ENDIF +$ DELETE/SYMBOLS names_flags $ extra_flags = "''extra_flags'" + "''user_c_flags'" $! $ min_pgflquota = "100000" @@ -2955,37 +3106,6 @@ $ GOTO Clean_up $ ENDIF $ ENDIF $! -$! PerlIO abstraction -$! -$ bool_dflt = "y" -$ IF F$TYPE(useperlio) .NES. "" -$ then -$ if f$extract(0,1,f$edit(useperlio,"collapse,upcase")) .eqs. "N" .or. useperlio .eqs. "undef" then bool_dflt = "n" -$ endif -$ IF .NOT. silent -$ THEN -$ echo "Previous versions of ''package' used the standard IO mechanisms as" -$ TYPE SYS$INPUT: -$ DECK -defined in . Versions 5.003_02 and later of perl allow -alternate IO mechanisms via the PerlIO abstraction layer, but the -stdio mechanism is still available if needed. The abstraction layer -can use AT&T's sfio (if you already have sfio installed) or regular stdio. -Using PerlIO with sfio may cause problems with some extension modules. - -$ EOD -$ echo "If this does not make any sense to you, just accept the default '" + bool_dflt + "'." -$ ENDIF -$ rp = "Use the PerlIO abstraction layer? [''bool_dflt'] " -$ GOSUB myread -$ IF ans -$ THEN -$ useperlio = "define" -$ ELSE -$ echo "Ok, doing things the stdio way." -$ useperlio = "undef" -$ ENDIF -$! $ echo "" $ echo4 "Checking the C run-time library." $! @@ -3062,6 +3182,12 @@ $ d_vms_be_case_sensitive = "define" $ ELSE $ d_vms_be_case_sensitive = "undef" $ ENDIF +$ IF shorten_long_symbols +$ THEN +$ d_vms_shorten_long_symbols = "define" +$ ELSE +$ d_vms_shorten_long_symbols = "undef" +$ ENDIF $! Some constant defaults. $ hwname = f$getsyi("HW_NAME") $ myname = myhostname @@ -3097,13 +3223,19 @@ $ THEN $ uselongdouble = "define" $ alignbytes="16" $ nveformat="""Le""" +$ nvEUformat="""LE""" $ nvfformat="""Lf""" +$ nvFUformat="""LF""" $ nvgformat="""Lg""" +$ nvGUformat="""LG""" $ ELSE $ uselongdouble = "undef" $ nveformat="""e""" +$ nvEUformat="""E""" $ nvfformat="""f""" +$ nvFUformat="""F""" $ nvgformat="""g""" +$ nvGUformat="""G""" $ ENDIF $ IF use64bitall .OR. use64bitall .EQS. "define" $ THEN @@ -3123,7 +3255,7 @@ $ if mymalloc then usemymalloc = "define" $! $ perl_cc=Mcc $! -$ IF (sharedperl .AND. archname .EQS. "VMS_AXP") +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") $ THEN $ obj_ext=".abj" $ so="axe" @@ -3131,7 +3263,7 @@ $ dlext="axe" $ exe_ext=".axe" $ lib_ext=".alb" $ ELSE -$ IF (sharedperl .AND. archname .EQS. "VMS_IA64") +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") $ THEN $ obj_ext=".ibj" $ so="ixe" @@ -3166,104 +3298,124 @@ $ usedl="define" $ startperl="""$ perl 'f$env(\""procedure\"")' \""'"+"'p1'\"" \""'"+"'p2'\"" \""'"+"'p3'\"" \""'"+"'p4'\"" \""'"+"'p5'\"" \""'"+"'p6'\"" \""'"+"'p7'\"" \""'"+"'p8'\""!\n" $ startperl=startperl + "$ exit++ + ++$status!=0 and $exit=$status=undef; while($#ARGV != -1 and $ARGV[$#ARGV] eq '"+"'){pop @ARGV;}""" $! -$ IF ((use_threads) .AND. (vms_ver .LES. "6.2")) -$ THEN -$ libs="SYS$SHARE:CMA$LIB_SHR.EXE/SHARE SYS$SHARE:CMA$RTL.EXE/SHARE SYS$SHARE:CMA$OPEN_LIB_SHR.exe/SHARE SYS$SHARE:CMA$OPEN_RTL.exe/SHARE" -$ ELSE -$ libs=" " -$ ENDIF -$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" -$ THEN -$ libc="(DECCRTL)" -$ ELSE -$ libc=" " -$ ENDIF +$ libs=" " +$ libc="(DECCRTL)" $! $! 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" -$ THEN -$ d_PRId64 = "define" -$ d_PRIu64 = "define" -$ d_PRIo64 = "define" -$ d_PRIx64 = "define" -$ d_PRIXU64 = "define" -$ sPRId64 = """Ld""" -$ sPRIXU64 = """LX""" -$ sPRIi64 = """Li""" -$ sPRIo64 = """Lo""" -$ sPRIu64 = """Lu""" -$ sPRIx64 = """Lx""" -$ d_quad = "define" -$ quadtype = "long long" -$ uquadtype = "unsigned long long" -$ quadkind = "QUAD_IS_LONG_LONG" -$ ELSE -$ d_PRId64 = "undef" -$ d_PRIXU64 = "undef" -$ d_PRIu64 = "undef" -$ d_PRIo64 = "undef" -$ d_PRIx64 = "undef" -$ sPRId64 = "" -$ sPRIXU64 = """lX""" -$ sPRIi64 = "" -$ sPRIo64 = "" -$ sPRIu64 = "" -$ sPRIx64 = "" -$ d_quad = "undef" -$ quadtype = "long" -$ uquadtype = "unsigned long" -$ quadkind = "QUAD_IS_LONG" -$ ENDIF -$! -$ IF archname .NES. "VMS_VAX" -$ THEN -$ d_frexpl = "define" -$ d_modfl = "define" -$ d_modflproto = "define" -$ ELSE -$ d_frexpl = "undef" -$ d_modfl = "undef" -$ d_modflproto = "undef" -$ ENDIF +$ d_PRId64 = "define" +$ d_PRIi64 = "define" +$ d_PRIu64 = "define" +$ d_PRIo64 = "define" +$ d_PRIx64 = "define" +$ d_PRIXU64 = "define" +$ sPRId64 = """Ld""" +$ sPRIXU64 = """LX""" +$ sPRIi64 = """Li""" +$ sPRIo64 = """Lo""" +$ sPRIu64 = """Lu""" +$ sPRIx64 = """Lx""" +$ d_quad = "define" +$ quadtype = "long long" +$ uquadtype = "unsigned long long" +$ quadkind = "3" +$! +$ d_frexpl = "define" +$ d_ldexpl = "define" +$ d_modfl = "define" +$ d_modflproto = "define" $! $ IF useieee .OR. useieee .EQS. "define" $ THEN +$ d_acosh = "define" +$ d_asinh = "define" +$ d_atanh = "define" +$ d_cbrt = "define" +$ d_copysign = "define" +$ d_erf = "define" +$ d_erfc = "define" +$ d_exp2 = "define" +$ d_expm1 = "define" +$ d_fdim = "define" +$ d_fma = "define" +$ d_fmax = "define" +$ d_fmin = "define" +$ d_fp_classify = "define" +$ d_hypot = "define" +$ d_ilogb = "define" $ d_isnan = "define" $ d_isnanl = "define" +$ d_isnormal = "define" +$ d_j0 = "define" +$ d_lgamma = "define" +$ d_log1p = "define" +$ d_log2 = "define" +$ d_logb = "define" +$ d_lrint = "define" +$ d_lrintl = "define" +$ d_lround = "define" +$ d_lroundl = "define" +$ d_nearbyint = "define" +$ d_nextafter = "define" +$ d_nexttoward = "define" +$ d_remainder = "define" +$ d_remquo = "define" +$ d_rint = "define" +$ d_tgamma = "define" +$ d_trunc = "define" +$ d_truncl = "define" $ ELSE +$ d_acosh = "undef" +$ d_asinh = "undef" +$ d_atanh = "undef" +$ d_cbrt = "undef" +$ d_copysign = "undef" +$ d_erf = "undef" +$ d_erfc = "undef" +$ d_exp2 = "undef" +$ d_expm1 = "undef" +$ d_fdim = "undef" +$ d_fma = "undef" +$ d_fmax = "undef" +$ d_fmin = "undef" +$ d_fp_classify = "undef" +$ d_hypot = "undef" +$ d_ilogb = "undef" $ d_isnan = "undef" $ d_isnanl = "undef" +$ d_isnormal = "undef" +$ d_j0 = "undef" +$ d_lgamma = "undef" +$ d_log1p = "undef" +$ d_log2 = "undef" +$ d_logb = "undef" +$ d_lrint = "undef" +$ d_lrintl = "undef" +$ d_lround = "undef" +$ d_lroundl = "undef" +$ d_nearbyint = "undef" +$ d_nextafter = "undef" +$ d_nexttoward = "undef" +$ d_remainder = "undef" +$ d_remquo = "undef" +$ d_rint = "undef" +$ d_tgamma = "undef" +$ d_trunc = "undef" +$ d_truncl = "undef" $ ENDIF $! $! Now some that we build up $! +$ use5005threads = "undef" +$ d_old_pthread_create_joinable = "undef" +$ old_pthread_create_joinable = " " $ IF use_threads $ THEN -$ IF use_5005_threads -$ THEN -$ arch = "''arch'-thread" -$ archname = "''archname'-thread" -$ d_old_pthread_create_joinable = "undef" -$ old_pthread_create_joinable = " " -$ use5005threads = "define" -$ useithreads = "undef" -$ ELSE -$ arch = "''arch'-ithread" -$ archname = "''archname'-ithread" -$ d_old_pthread_create_joinable = "undef" -$ old_pthread_create_joinable = " " -$ use5005threads = "undef" -$ useithreads = "define" -$ ENDIF +$ useithreads = "define" $ ELSE -$ d_old_pthread_create_joinable = "undef" -$ old_pthread_create_joinable = " " -$ use5005threads = "undef" $ useithreads = "undef" $ ENDIF $! @@ -3421,6 +3573,8 @@ $ WS "int main()" $ WS "{" $ WS "#ifdef __STDC__" $ WS "printf(""42\n"");" +$ WS "#elif defined (__STD_ANSI)" ! for CXX +$ WS "printf(""42\n"");" $ WS "#else" $ WS "printf(""1\n"");" $ WS "#endif" @@ -3431,8 +3585,8 @@ $ GOSUB compile $ cpp_stuff=tmp $ IF F$INTEGER(tmp) .eq. 42 $ THEN -$ echo4 "Your C compiler and pre-processor defines the symbol:" -$ echo4 "__STDC__" +$ echo4 "Oh! Smells like ANSI's been here." +$ echo "We can catify or stringify, separately or together!" $ ENDIF $! $! Check for double size @@ -3462,6 +3616,10 @@ $ GOSUB link_ok $ IF link_status .NE. good_link $ THEN $ longdblsize="0" +$ longdblkind="0" +$ longdblinfbytes="undef" +$ longdblnanbytes="undef" +$ longdblmantbits="undef" $ d_longdbl="undef" $ echo "You do not have long double." $ ELSE @@ -3469,6 +3627,10 @@ $ echo "You have long double." $ echo4 "Checking to see how big your long doubles are..." $ GOSUB just_mcr_it $ longdblsize = tmp +$ longdblkind = "1" +$ longdblinfbytes="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f" +$ longdblnanbytes="0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff" +$ longdblmantbits="112" $ d_longdbl = "define" $ echo "Your long doubles are ''longdblsize' bytes long." $ ENDIF @@ -3637,7 +3799,7 @@ $ i_socks = tmp $! $! Check the prototype for select $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" @@ -3646,13 +3808,8 @@ $ WS "#endif" $ WS "#include " $ WS "#include " $ IF i_unistd .EQS. "define" THEN WS "#include " -$ IF Has_Socketshr -$ THEN -$ WS "#include " -$ ELSE -$ WS "#include " -$ WS "#include " -$ ENDIF +$ WS "#include " +$ WS "#include " $ WS "int main()" $ WS "{" $ WS "fd_set *foo;" @@ -3686,10 +3843,6 @@ $ WS "#include " $ WS "#endif" $ WS "#include " $ WS "#include " -$ IF Has_Socketshr -$ THEN -$ WS "#include " -$ ENDIF $ IF Has_Dec_C_Sockets $ THEN $ WS "#include " @@ -3872,7 +4025,7 @@ $ ENDIF $! $! Check to see if gethostname exists $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" @@ -3880,13 +4033,8 @@ $ WS "#include " $ WS "#endif" $ WS "#include " $ WS "#include " -$ IF Has_Socketshr -$ THEN -$ WS "#include " -$ ELSE -$ WS "#include " -$ WS "#include " -$ ENDIF +$ WS "#include " +$ WS "#include " $ WS "int main()" $ WS "{" $ WS "char name[100];" @@ -3952,6 +4100,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" @@ -4046,7 +4200,7 @@ $ WS "#include " $ WS "int main()" $ WS "{" $ WS "char * place;" -$ WS "place = memchr(""foo"", 47, 3);" +$ WS "place = (char *)memchr(""foo"", 47, 3);" $ WS "exit(0);" $ WS "}" $ CS @@ -4329,42 +4483,43 @@ $ tmp = "setvbuf" $ GOSUB inlibc $ d_setvbuf = tmp $! -$! see if sfio.h is available -$! see if sfio library is available -$! Ok, but do we want to use it. -$! IF F$TYPE(usesfio) .EQS. "" THEN usesfio = "undef" -$! IF val .EQS. "define" -$! THEN -$! IF usesfio .EQS. "define" -$! THEN dflt = "y" -$! ELSE dflt = "n" -$! ENDIF -$! echo "''package' can use the sfio library, but it is experimental." -$! IF useperlio .EQS. "undef" -$! THEN -$! echo "For sfio also the PerlIO abstraction layer is needed." -$! echo "Earlier you said you would not want that." -$! ENDIF -$! rp="You seem to have sfio available, do you want to try using it? [''dflt'] " -$! GOSUB myread -$! IF ans .EQS. "" THEN ans = dflt -$! IF ans -$! THEN -$! echo "Ok, turning on both sfio and PerlIO, then." -$! useperlio="define" -$! val="define" -$! ELSE -$! echo "Ok, avoiding sfio this time. I'll use stdio instead." -$! val="undef" -$! ENDIF -$! ELSE -$! IF usesfio .EQS. "define" -$! THEN -$! echo4 "Sorry, cannot find sfio on this machine." -$! echo4 "Ignoring your setting of usesfio=''usesfio'." -$! val="undef" -$! ENDIF -$! ENDIF +$! Check for the shm* routines. +$! +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "#include " +$ WS "#include " +$ WS "int shmget(key_t key, size_t size, int shmflg);" +$ WS "void* shmat(int shmid,const void *shmaddr,int shmflg);" +$ WS "int shmctl(int shmid, int cmd, struct shmid_ds *buf);" +$ WS "int shmdt(const void *shmaddr);" +$ WS "int main() {" +$ WS "int shm_id = shmget(IPC_PRIVATE, 8, S_IRWXU);" +$ WS "if (shm_id == -1) printf(""0\n""); else printf (""1\n"");" +$ WS "}" +$ CS +$ GOSUB compile +$ IF tmp .EQS. "1" +$ THEN +$ d_shm = "define" +$ d_shmat = "define" +$ d_shmatprototype = "define" +$ d_shmctl = "define" +$ d_shmdt = "define" +$ d_shmget = "define" +$ shmattype = "void *" +$ ELSE +$ d_shm = "undef" +$ d_shmat = "undef" +$ d_shmatprototype = "undef" +$ d_shmctl = "undef" +$ d_shmdt = "undef" +$ d_shmget = "undef" +$ shmattype = "undef" +$ ENDIF $! $! Check for setenv $! @@ -4402,7 +4557,7 @@ $ d_setproctitle = tmp $! $! Check for $! -$ IF Has_Dec_C_Sockets .or. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ tmp = "netinet/in.h" $ GOSUB inhdr @@ -4411,9 +4566,32 @@ $ ELSE $ i_niin="undef" $ ENDIF $! +$! Check for +$! +$ IF Has_Dec_C_Sockets +$ THEN +$ tmp = "arpa/inet.h" +$ GOSUB inhdr +$ i_arpainet = tmp +$ ELSE +$ i_arpainet="undef" +$ ENDIF +$! +$! Check for +$! +$ IF Has_Dec_C_Sockets +$ THEN +$ tmp = "sys/un.h" +$ GOSUB inhdr +$ i_sysun = tmp +$ ELSE +$ i_sysun="undef" +$ ENDIF +$! +$! $! Check for $! -$ IF Has_Dec_C_Sockets .or. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ tmp = "netinet/tcp.h" $ GOSUB inhdr @@ -4424,17 +4602,14 @@ $ ENDIF $! $! Check for endhostent $! -$ IF Has_Dec_C_Sockets .or. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "endhostent();" @@ -4450,17 +4625,14 @@ $ ENDIF $! $! Check for endnetent $! -$ IF Has_Dec_C_Sockets .or. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "endnetent();" @@ -4476,17 +4648,14 @@ $ ENDIF $! $! Check for endprotoent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "endprotoent();" @@ -4502,17 +4671,14 @@ $ ENDIF $! $! Check for endservent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "endservent();" @@ -4528,17 +4694,14 @@ $ ENDIF $! $! Check for sethostent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "sethostent(1);" @@ -4554,17 +4717,14 @@ $ ENDIF $! $! Check for setnetent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "setnetent(1);" @@ -4580,17 +4740,14 @@ $ ENDIF $! $! Check for setprotoent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "setprotoent(1);" @@ -4606,17 +4763,14 @@ $ ENDIF $! $! Check for setservent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "setservent(1);" @@ -4632,17 +4786,14 @@ $ ENDIF $! $! Check for gethostent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "gethostent();" @@ -4658,17 +4809,14 @@ $ ENDIF $! $! Check for getnetent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "getnetent();" @@ -4684,17 +4832,14 @@ $ ENDIF $! $! Check for getprotoent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "getprotoent();" @@ -4710,17 +4855,14 @@ $ ENDIF $! $! Check for getservent $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ OS $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "getservent();" @@ -4734,6 +4876,70 @@ $ ELSE $ d_getsent="undef" $ ENDIF $! +$! +$! Check for sa_len +$! +$ echo4 "Checking the availability of sa_len in the sockaddr struct ..." +$ IF Has_Dec_C_Sockets +$ THEN +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#define _SOCKADDR_LEN" +$ WS "#include " +$ WS "#include " +$ WS "#include " +$ WS "int main() {" +$ WS "struct sockaddr sa;" +$ WS "memset((char *)&sa, 0, sizeof(sa));" +$ WS "return (sa.sa_len);" +$ WS "}" +$ CS +$ GOSUB compile_ok +$ IF compile_status .EQ. good_compile +$ THEN +$ d_sockaddr_sa_len="define" +$ echo "You have sa_len in the sockaddr struct." +$ ELSE +$ d_sockaddr_sa_len="undef" +$ echo "You do not have sa_len in the sockaddr struct." +$ ENDIF +$ ELSE +$ d_sockaddr_sa_len="undef" +$ echo "You do not have sa_len in the sockaddr struct." +$ ENDIF +$! +$! Check for sin6_scope_id +$! +$ echo4 "Checking the availability of sin6_scope_id in the struct sockaddr_in6 ..." +$ IF Has_Dec_C_Sockets +$ THEN +$ OS +$ WS "#include " +$ WS "#include " +$ WS "#include " +$ WS "#include " +$ WS "int main() {" +$ WS "struct sockaddr_in6 sin6;" +$ WS "memset((char *)&sin6, 0, sizeof(sin6));" +$ WS "return (sin6.sin6_scope_id);" +$ WS "}" +$ CS +$ GOSUB compile_ok +$ IF compile_status .EQ. good_compile +$ THEN +$ d_sin6_scope_id="define" +$ echo "You have sin6_scope_id in the sockaddr_in6 struct." +$ ELSE +$ d_sin6_scope_id="undef" +$ echo "You do not have sin6_scope_id in the sockaddr_in6 struct." +$ ENDIF +$ ELSE +$ d_sin6_scope_id="undef" +$ echo "You do not have sin6_scope_id in the sockaddr_in6 struct." +$ ENDIF +$! $! Check for nanosleep $! $ OS @@ -4753,7 +4959,7 @@ $ d_nanosleep = tmp $! $! Check for socklen_t $! -$ IF Has_Dec_C_Sockets .OR. Has_Socketshr +$ IF Has_Dec_C_Sockets $ THEN $ echo4 "Checking to see if you have socklen_t..." $ OS @@ -4761,10 +4967,7 @@ $ WS "#if defined(__DECC) || defined(__DECCXX)" $ WS "#include " $ WS "#endif" $ WS "#include " -$ IF Has_Socketshr -$ THEN WS "#include " -$ ELSE IF i_netdb .EQS. "define" THEN WS "#include " -$ ENDIF +$ IF i_netdb .EQS. "define" THEN WS "#include " $ WS "int main()" $ WS "{" $ WS "socklen_t x = 16;" @@ -4896,6 +5099,33 @@ $ echo4 "I'm disabling large file support." $ uselargefiles = "undef" $ ENDIF $! +$! Check for st_ino size. +$! +$ st_ino_size = 4 +$ OS +$ WS "#include " +$ WS "#include " +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include +$ WS "#endif" +$ WS "int main() { +$ WS "#''uselargefiles' _LARGEFILE" +$ WS "#ifdef _LARGEFILE" +$ WS " printf(""%d\n"", sizeof(__ino64_t));" +$ WS "#else" +$ WS " printf(""%d\n"", sizeof(unsigned short)*3);" +$ WS "#endif" +$ WS " exit(0);" +$ WS "}" +$ CS +$ GOSUB link_ok +$ IF link_status .EQ. good_link +$ THEN +$ GOSUB just_mcr_it +$ st_ino_size = tmp +$ ENDIF +$ echo "Your st_ino size is ''st_ino_size' bytes." +$! $! Tests for hard link, symbolic links, and 7.3 + CRTL features $! $ d_lchown = "undef" @@ -4910,7 +5140,7 @@ $! easy to use DCL test to see if hardlinks are enabled on the build $! disk. That would require more work to test, and I am only testing $! this on 8.2, so that is why the 8.2 test. $! -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") $ THEN $ IF f$getdvi("SYS$DISK","HARDLINKS_SUPPORTED") $ THEN @@ -4928,15 +5158,14 @@ $ ENDIF $! $ IF uselargefiles .OR. uselargefiles .eqs. "define" $ THEN -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") $ 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 -$! WS "#include " -$ WS "void exit(int foo);" +$ WS "#include " $ WS "char *realpath(const char *file_name, char * resolved_name, ...);" $ WS "int main()" $ WS "{" @@ -4970,7 +5199,7 @@ $ echo4 "Your system does not support symbolic links." $ echo4 "I am disabling symbolic link support." $ ENDIF $ ELSE -$ IF (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ IF (vms_ver .GES. "8.2") $ THEN $ echo4 "-Duselargefiles is required for symbolic link support." $ echo4 "You did not specify that, so I am disabling symbolic link support." @@ -5004,25 +5233,22 @@ $ d_ttyname_r = "undef" $ ttyname_r_proto = "0" $ d_snprintf = "undef" $ d_vsnprintf = "undef" -$ if (vms_ver .GES. "7.3-2") .AND. (archname .NES. "VMS_VAX") +$ echo "Asumming 64-bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines" +$ d_getgrgid_r = "define" +$ getgrgid_r_proto = "1" +$ d_getgrnam_r = "define" +$ getgrnam_r_proto = "1" +$ if d_symlink .or. d_symlink .EQS. "define" $ then -$ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 routines" -$ d_getgrgid_r = "define" -$ getgrgid_r_proto = "1" -$ d_getgrnam_r = "define" -$ getgrnam_r_proto = "1" -$ if d_symlink .or. d_symlink .EQS. "define" -$ then $! FIXME: Need to find how to activate this. $! d_getpgid = "define" $! d_getpgrp = "define" -$ endif -$ d_setgrent = "define" -$ d_ttyname_r = "define" -$ ttyname_r_proto = "1" -$ d_snprintf = "define" -$ d_vsnprintf = "define" $ endif +$ d_setgrent = "define" +$ d_ttyname_r = "define" +$ ttyname_r_proto = "1" +$ d_snprintf = "define" +$ d_vsnprintf = "define" $! $! VMS V7.3-2 powered options $! We know that it is only available for V7.3-2 and later on 64 bit platforms. @@ -5038,7 +5264,7 @@ $ d_setregid = "undef" $ d_setreuid = "undef" $ d_setsid = "undef" $ ! Disable this section for now. -$!$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$!$ if (vms_ver .GES. "8.2") $ if .NOT. 1 $ then $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with V7.3-2 UID setting routines" @@ -5054,70 +5280,27 @@ $! VMS V8 powered options $! We know that it is only available for 8.2 and later on 64 bit platforms. $! $ d_fstatvfs = "undef" -$! d_statvfs = "undef" +$ d_statvfs = "undef" $ i_sysstatvfs = "undef" -$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ if (vms_ver .GES. "8.2") $ then $ echo "Found 64 bit OpenVMS ''vms_ver' -- will build with 8.2 routines" $ d_fstatvfs = "define" -$! d_statvfs = "define" +$ d_statvfs = "define" $ i_sysstatvfs = "define" $ endif $! $! Check rand48 and its ilk $! -$ echo4 "Looking for a random number function..." -$ OS -$ WS "#if defined(__DECC) || defined(__DECCXX)" -$ WS "#include " -$ WS "#endif" -$ WS "#include " -$ WS "int main()" -$ WS "{" -$ WS "srand48(12L);" -$ WS "exit(0);" -$ WS "}" -$ CS -$ GOSUB link_ok -$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link -$ THEN -$ drand01 = "drand48()" -$ randbits = "48" -$ randfunc = "drand48" -$ randseedtype = "long int" -$ seedfunc = "srand48" -$ echo4 "Good, found drand48()." -$ d_drand48proto = "define" -$ ELSE -$ d_drand48proto = "undef" -$ drand01="random()" -$ randbits = "31" -$ randfunc = "random" -$ randseedtype = "unsigned" -$ seedfunc = "srandom" -$ OS -$ WS "#if defined(__DECC) || defined(__DECCXX)" -$ WS "#include " -$ WS "#endif" -$ WS "#include " -$ WS "int main()" -$ WS "{" -$ WS "srandom(12);" -$ WS "exit(0);" -$ WS "}" -$ CS -$ GOSUB link_ok -$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link -$ THEN -$ echo4 "OK, found random()." -$ ELSE -$ drand01="(((float)rand())*MY_INV_RAND_MAX)" -$ randfunc = "rand" -$ randseedtype = "unsigned" -$ seedfunc = "srand" -$ echo4 "Yick, looks like I have to use rand()." -$ ENDIF -$ ENDIF +$ echo4 "Using our internal random number implementation..." +$! +$ randfunc = "Perl_drand48" +$ drand01 = "Perl_drand48()" +$ seedfunc = "Perl_drand48_init" +$ randbits = "48" +$ randseedtype = "U32" +$ d_drand48proto = "define" +$! $! Done with compiler checks. Clean up. $ IF F$SEARCH("try.c") .NES."" THEN DELETE/NOLOG/NOCONFIRM try.c;* $ IF F$SEARCH("try.obj").NES."" THEN DELETE/NOLOG/NOCONFIRM try.obj;* @@ -5137,51 +5320,49 @@ $ THEN $ d_attribut="define" $ vms_cc_type="gcc" $ ELSE -$ vms_cc_type="cc" +$ IF ccname .EQS. "CXX" +$ THEN +$ vms_cc_type="cxx" +$ ELSE +$ vms_cc_type="cc" +$ ENDIF $ d_attribut="undef" $ ENDIF $! -$! Dec C >= 5.2 and VMS ver >= 7.0 -$ IF (ccname .EQS. "DEC") .AND. - - (F$INTEGER(Dec_C_Version).GE.50200000) .AND. (vms_ver .GES. "7.0") -$ THEN -$ d_bcmp="define" -$ d_getitimer="define" -$ d_gettimeod="define" -$ d_mmap="define" -$ d_mprotect="define" -$ d_munmap="define" -$ d_msync="define" -$ d_ualarm="define" -$ d_uname="define" -$! d_unsetenv="define" ! Fix me - Activating requires changing VMS code -$ d_unsetenv="undef" ! Change will be needed to allow GNV integration -$ d_clearenv="undef" -$ d_usleep="define" -$ d_setitimer="define" -$ d_sigaction="define" -$ d_sigprocmask="define" -$ d_truncate="define" -$ d_wait4="define" -$ d_index="define" -$ pidtype="pid_t" -$ 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 +$ d_bcmp="define" +$ d_getitimer="define" +$ d_gettimeod="define" +$ d_mmap="define" +$ d_mprotect="define" +$ d_munmap="define" +$ d_msync="define" +$ d_ualarm="define" +$ d_uname="define" +$! d_unsetenv="define" ! Fix me - Activating requires changing VMS code +$ d_unsetenv="undef" ! Change will be needed to allow GNV integration +$ d_clearenv="undef" +$ d_usleep="define" +$ d_setitimer="define" +$ d_sigaction="define" +$ d_sigprocmask="define" +$ d_truncate="define" +$ d_wait4="define" +$ d_index="define" +$ pidtype="pid_t" +$ 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" +$ sig_name2 = sig_name2 + " NUM27 WINCH" $!* 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 +$ sig_name = sig_name1 + sig_name2 +$ sig_num = "" +$ sig_num_init = "" +$ sig_name_init = "" +$ sig_index = 0 $! $ PARSE_SIG_NAME_LOOP: $! @@ -5205,41 +5386,7 @@ $ d_pathconf="define" $ d_fpathconf="define" $ d_sysconf="define" $ d_sigsetjmp="define" -$ ELSE -$ pidtype="unsigned int" -$ d_bcmp="undef" -$ d_getitimer="undef" -$ d_gettimeod="undef" -$ d_mmap="undef" -$ d_mprotect="undef" -$ d_munmap="undef" -$ d_msync="undef" -$ d_ualarm="undef" -$ d_uname="undef" -$ d_unsetenv="undef" -$ d_clearenv="undef" -$ d_usleep="undef" -$ d_setitimer="undef" -$ d_sigaction="undef" -$ d_sigprocmask="undef" -$ d_truncate="undef" -$ d_wait4="undef" -$ d_index="undef" -$ 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="15" -$ if (vms_ver .GES. "6.2") then sig_count="17" -$ uidtype="unsigned int" -$ d_pathconf="undef" -$ d_fpathconf="undef" -$ d_sysconf="undef" -$ d_sigsetjmp="undef" -$ ENDIF +$! $!: see if tzname[] exists $ OS $ WS "#include " @@ -5265,64 +5412,38 @@ $ d_phostname="undef" $ ENDIF $! $! Dec C alone -$ IF ccname .EQS. "DEC" +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN -$ d_mbstowcs="define" -$ d_mbtowc="define" -$ d_stdiobase="define" -$ d_stdio_cnt_lval="define" -$ d_stdio_ptr_lval="define" -$ d_stdstdio="define" -$ d_faststdio="define" -$ d_wcstombs="define" -$ d_mblen="define" -$ d_mktime="define" -$ d_strcoll="define" -$ d_strxfrm="define" -$ d_wctomb="define" -$ i_locale="define" -$ i_langinfo="define" -$ d_locconv="define" -$ IF vms_ver .GES. "6.2" -$ THEN -$ d_nl_langinfo="define" -$ ELSE -$ d_nl_langinfo="undef" -$ ENDIF -$ d_setlocale="define" $ vms_cc_type="decc" -$ ELSE -$ d_mbstowcs="undef" -$ d_mbtowc="undef" -$ d_stdiobase="undef" -$ d_stdio_cnt_lval="undef" -$ d_stdio_ptr_lval="undef" -$ d_stdstdio="undef" -$ d_faststdio="undef" -$ d_wcstombs="undef" -$ d_mblen="undef" -$ d_mktime="undef" -$ d_strcoll="undef" -$ d_strxfrm="undef" -$ d_wctomb="undef" -$ i_locale="undef" -$ i_langinfo="undef" -$ d_locconv="undef" -$ d_nl_langinfo="undef" -$ d_setlocale="undef" $ ENDIF +$ d_faststdio="define" +$ d_locconv="define" +$ d_mblen="define" +$ d_mbstowcs="define" +$ d_mbtowc="define" +$ d_mktime="define" +$ d_nl_langinfo="define" +$ d_setlocale="define" +$ d_stdiobase="define" +$ d_stdio_cnt_lval="define" +$ d_stdio_ptr_lval="define" +$ d_stdstdio="define" +$ d_strcoll="define" +$ d_strxfrm="define" +$ i_langinfo="define" +$ i_locale="define" $ d_stdio_ptr_lval_sets_cnt="undef" $ d_stdio_ptr_lval_nochange_cnt="define" $ usefaststdio="undef" $! $! Sockets? -$ if Has_Socketshr .OR. Has_Dec_C_Sockets +$ if Has_Dec_C_Sockets $ THEN $ d_vms_do_sockets="define" $ d_htonl="define" $ d_socket="define" $ d_sockpair = "undef" -$ if (vms_ver .GES. "8.2") .AND. (archname .NES. "VMS_VAX") +$ if (vms_ver .GES. "8.2") $ then $ echo "Found 64 bit OpenVMS 8.2, will build with socketpair support" $ d_sockpair = "define" @@ -5344,12 +5465,7 @@ $ d_gethostprotos="define" $ d_getnetprotos="define" $ d_getprotoprotos="define" $ d_getservprotos="define" -$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" -$ THEN -$ socksizetype="unsigned int" -$ ELSE -$ socksizetype="int *" -$ ENDIF +$ socksizetype="size_t" $ ELSE $ d_vms_do_sockets="undef" $ d_htonl="undef" @@ -5375,18 +5491,12 @@ $ d_getservprotos="undef" $ socksizetype="undef" $ ENDIF $! Threads +$ d_oldpthreads="undef" $ IF use_threads $ THEN $ usethreads="define" $ d_pthreads_created_joinable="define" -$ if (vms_ver .GES. "7.0") -$ THEN -$ d_oldpthreads="undef" -$ ELSE -$ d_oldpthreads="define" -$ ENDIF $ ELSE -$ d_oldpthreads="undef" $ usethreads="undef" $ d_pthreads_created_joinable="undef" $ ENDIF @@ -5415,9 +5525,13 @@ $ i64size="undef" $ u64size="undef" $ ENDIF $! +$ doublemantbits = "52" $ IF uselongdouble .OR. uselongdouble .EQS. "define" $ THEN $ nvtype="long double" +$ nvmantbits = longdblmantbits +$ ELSE +$ nvmantbits = doublemantbits $ ENDIF $! $ tmp = "''ivtype'" @@ -5483,53 +5597,102 @@ $ 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 +$ 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) @@ -5561,7 +5724,8 @@ $ d_signbit = "undef" $ echo4 "Nope." $ ENDIF $! -$ echo4 "Checking if kill() uses SYS$FORCEX or can't be called from a signal handler..." +$ echo4 "Checking if kill() uses SYS$FORCEX, can't be called from a signal handler," +$ echo4 "or fails to handle a signal value of zero..." $ kill_by_sigprc = "undef" $ OS $ WS "#include " @@ -5575,12 +5739,13 @@ $ WS " signal(1,handler1);" $ WS " signal(2,handler2);" $ WS " kill(getpid(),1);" $ WS " sleep(1);" -$ WS " printf(""\n"");" +$ WS " kill(getpid(),0);" +$ WS " printf(""3\n"");" $ WS "}" $ CS $ ON ERROR THEN CONTINUE $ GOSUB compile -$ IF tmp .NES. "012" +$ IF tmp .NES. "0123" $ THEN $ echo4 "Yes, it has at least one of those limitations." $ echo4 "Checking whether we can use SYS$SIGPRC instead..." @@ -5588,12 +5753,20 @@ $ OS $ WS "#include " $ WS "#include " $ WS "unsigned long code = 0;" +$ WS "#define sys$sigprc SYS$SIGPRC" +$ WS "#ifdef __cplusplus" +$ WS "extern ""C"" {" +$ WS "#endif" +$ WS " int sys$sigprc(unsigned int *,void *,unsigned int);" +$ WS "#ifdef __cplusplus" +$ WS "}" +$ WS "#endif" $ WS "int handler(unsigned long *args) {" $ WS " code = args[1];" $ WS " return 1;" $ WS "}" $ WS "main() { " -$ WS " int iss, sys$sigprc();" +$ WS " int iss;" $ WS " lib$establish(handler);" $ WS " iss = sys$sigprc(0,0,0x1234);" $ WS " iss = ((iss&1)==1 && code == 0x1234);" @@ -5607,21 +5780,6 @@ $ THEN $ echo4 "Yep, we can." $ kill_by_sigprc = "define" $! -$! 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 .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" -$ sig_name_init = psnwc1 + psnwc2 -$ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6" -$ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,0" -$ sig_size="17" -$ sig_count="15" -$ endif $ ELSE $ echo4 "Nope, we can't." $ ENDIF @@ -5638,10 +5796,8 @@ $ IF ccname .EQS. "DEC" $ THEN $ ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'" $ ENDIF -$ i_dirent = "undef" $ IF ccname .EQS. "CXX" $ THEN -$ i_dirent = "define" $ ccflags="/Include=[]/Standard=ANSI/Prefix=All/Obj=''obj_ext' ''ccflags'" $ ENDIF $ IF use_vmsdebug_perl @@ -5689,6 +5845,10 @@ $ WC "_exe='" + exe_ext + "'" $ WC "_o='" + obj_ext + "'" $ WC "alignbytes='" + alignbytes + "'" $ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'" +$ WC "api_revision='" + api_revision + "'" +$ WC "api_subversion='" + api_subversion + "'" +$ WC "api_version='" + api_version + "'" +$ WC "api_versionstring='" + version + "'" $ WC "ar='" + "'" $ WC "archlib='" + archlib + "'" $ WC "archlibexp='" + archlibexp + "'" @@ -5696,6 +5856,7 @@ $ WC "archname='" + archname + "'" $ WC "baserev='" + baserev + "'" $ WC "bin='" + bin + "'" $ WC "binexp='" + binexp + "'" +$ WC "bootstrap_charset='undef'" $ WC "builddir='" + builddir + "'" $ WC "byteorder='1234'" $ WC "castflags='0'" @@ -5725,6 +5886,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 + "'" @@ -5739,14 +5901,15 @@ $ WC "d_Gconvert='sprintf((b),""%.*" + (nvgformat-"""") + ",(n),(x))'" $ ELSE $ WC "d_Gconvert='my_gconvert(x,n,t,b)'" $ ENDIF -$ WC "d_PRIEldbl='" + d_PRIEUldbl + "'" -$ WC "d_PRIFldbl='" + d_PRIFUldbl + "'" -$ WC "d_PRIGldbl='" + d_PRIGUldbl + "'" +$ WC "d_PRIEUldbl='" + d_PRIEUldbl + "'" +$ WC "d_PRIFUldbl='" + d_PRIFUldbl + "'" +$ WC "d_PRIGUldbl='" + d_PRIGUldbl + "'" $ WC "d_PRIXU64='" + d_PRIXU64 + "'" $ WC "d_PRId64='" + d_PRId64 + "'" $ WC "d_PRIeldbl='" + d_PRIeldbl + "'" $ WC "d_PRIfldbl='" + d_PRIfldbl + "'" $ WC "d_PRIgldbl='" + d_PRIgldbl + "'" +$ WC "d_PRIi64='" + d_PRIi64 + "'" $ WC "d_PRIo64='" + d_PRIo64 + "'" $ WC "d_PRIu64='" + d_PRIu64 + "'" $ WC "d_PRIx64='" + d_PRIx64 + "'" @@ -5754,23 +5917,30 @@ $ WC "d_SCNfldbl='" + d_SCNfldbl + "'" $ WC "d__fwalk='undef'" $ WC "d_access='" + d_access + "'" $ WC "d_accessx='undef'" +$ WC "d_acosh='" + d_acosh + "'" $ WC "d_aintl='undef'" $ WC "d_alarm='define'" $ WC "d_archlib='define'" +$ WC "d_asctime64='undef'" +$ WC "d_asinh='" + d_asinh + "'" +$ WC "d_atanh='" + d_atanh + "'" $ 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 + "'" $ WC "d_bincompat3='undef'" -$! WC "d_bsdpgrp='undef'" +$ WC "d_bsd='undef'" $ WC "d_bsdgetpgrp='undef'" $ WC "d_bsdsetpgrp='undef'" $ WC "d_builtin_choose_expr='undef'" ! GCC only @@ -5778,28 +5948,42 @@ $ WC "d_builtin_expect='undef'" ! GCC only $ WC "d_bzero='" + d_bzero + "'" $ WC "d_casti32='define'" $ WC "d_castneg='define'" +$ WC "d_cbrt='" + d_cbrt + "'" $ WC "d_charvspr='undef'" $ WC "d_chown='define'" $ WC "d_chroot='undef'" $ WC "d_chsize='undef'" $ WC "d_class='undef'" +$ WC "d_closedir='define'" $ WC "d_cmsghdr_s='undef'" $ WC "d_const='define'" +$ WC "d_copysign='" + d_copysign + "'" $ WC "d_copysignl='define'" $ WC "d_cplusplus='" + d_cplusplus + "'" $ WC "d_crypt='define'" $ WC "d_csh='undef'" $ WC "d_ctermid='define'" +$ WC "d_ctime64='undef'" $ 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_difftime64='undef'" $ WC "d_dir_dd_fd='undef'" $ WC "d_dirfd='undef'" $ WC "d_dirnamlen='define'" -$ WC "d_dlerror='undef'" +$ WC "d_dladdr='undef'" +$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.2") +$ THEN +$ WC "d_dlerror='define'" +$ WC "d_dlopen='define'" +$ ELSE +$ WC "d_dlerror='undef'" +$ WC "d_dlopen='undef'" +$ ENDIF $ WC "d_dlsymun='undef'" +$ WC "d_backtrace='undef'" $ WC "d_dosuid='undef'" $ WC "d_drand48proto='" + d_drand48proto + "'" $ WC "d_dup2='define'" @@ -5811,25 +5995,46 @@ $ WC "d_endpent='" + d_endpent + "'" $ WC "d_endpwent='define'" $ WC "d_endsent='" + d_endsent + "'" $ WC "d_eofnblk='undef'" +$ WC "d_erf='" + d_erf + "'" +$ WC "d_erfc='" + d_erfc + "'" $ WC "d_eunice='undef'" +$ WC "d_exp2='" + d_exp2 + "'" +$ WC "d_expm1='" + d_expm1 + "'" $ WC "d_fchmod='undef'" $ WC "d_fchdir='undef'" $ WC "d_fchown='undef'" $ WC "d_fcntl='" + d_fcntl + "'" $ WC "d_fcntl_can_lock='" + d_fcntl_can_lock + "'" $ WC "d_fd_set='" + d_fd_set + "'" +$ WC "d_fd_macros='define'" +$ WC "d_fdim='" + d_fdim + "'" +$ WC "d_fds_bits='define'" +$ WC "d_fegetround='undef'" $ WC "d_fgetpos='define'" -$ WC "d_finite='undef'" -$ WC "d_finitel='undef'" +$ IF use_ieee_math +$ THEN +$ WC "d_finite='define'" +$ WC "d_finitel='define'" +$ ELSE +$ WC "d_finite='undef'" +$ WC "d_finitel='undef'" +$ ENDIF $ WC "d_flexfnam='define'" $ WC "d_flock='undef'" $ WC "d_flockproto='undef'" +$ WC "d_fma='" + d_fma + "'" +$ WC "d_fmax='" + d_fmax + "'" +$ WC "d_fmin='" + d_fmin + "'" $ WC "d_fork='undef'" $ WC "d_fp_class='undef'" +$ WC "d_fp_classify='" + d_fp_classify + "'" +$ WC "d_fp_classify='undef'" +$ WC "d_fp_classl='undef'" $ WC "d_fpathconf='" + d_fpathconf + "'" $ WC "d_fpclass='undef'" $ WC "d_fpclassify='undef'" $ WC "d_fpclassl='undef'" +$ WC "d_fpgetround='undef'" $ WC "d_fpos64_t='" + d_fpos64_t + "'" $ WC "d_frexpl='" + d_frexpl + "'" $ WC "d_fs_data_s='undef'" @@ -5837,9 +6042,13 @@ $ WC "d_fseeko='" + d_fseeko + "'" $ WC "d_fsetpos='define'" $ WC "d_fstatfs='undef'" $ WC "d_fstatvfs='" + d_fstatvfs + "'" -$ WC "d_fsync='undef'" +$ WC "d_fsync='define'" $ WC "d_ftello='" + d_ftello + "'" +$ WC "d_ftime='define'" $ WC "d_futimes='undef'" +$ WC "d_gdbmndbm_h_uses_prototypes='undef'" +$ WC "d_gdbm_ndbm_h_uses_prototypes='undef'" +$ WC "d_getaddrinfo='define'" $ WC "d_getcwd='define'" $ WC "d_getespwnam='undef'" $ WC "d_getfsstat='undef'" @@ -5854,6 +6063,7 @@ $ WC "d_getitimer='" + d_getitimer + "'" $ WC "d_getlogin='define'" $ WC "d_getmnt='undef'" $ WC "d_getmntent='undef'" +$ WC "d_getnameinfo='define'" $ WC "d_getnbyaddr='" + d_getnbyaddr + "'" $ WC "d_getnbyname='" + d_getnbyname + "'" $ WC "d_getnent='" + d_getnent + "'" @@ -5876,30 +6086,61 @@ $ WC "d_getsent='" + d_getsent + "'" $ WC "d_getservprotos='" + d_getservprotos + "'" $ WC "d_getspnam='undef'" $ WC "d_gettimeod='" + d_gettimeod + "'" +$ WC "d_gmtime64='undef'" $ WC "d_gnulibc='undef'" $ WC "d_grpasswd='undef'" $ WC "d_hasmntopt='undef'" $ WC "d_htonl='" + d_htonl + "'" +$ WC "d_hypot='" + d_hypot + "'" +$ WC "d_ilogb='" + d_ilogb + "'" $ WC "d_ilogbl='undef'" $ WC "d_inc_version_list='undef'" $ WC "d_index='" + d_index + "'" -$ WC "d_inetaton='undef'" +$ WC "d_inetaton='define'" +$ WC "d_inetntop='define'" +$ WC "d_inetpton='define'" $ WC "d_int64_t='" + d_int64_t + "'" +$ WC "d_ip_mreq='define'" +$ WC "d_ip_mreq_source='undef'" +$ WC "d_ipv6_mreq='define'" +$ WC "d_ipv6_mreq_source='undef'" $ WC "d_isascii='define'" +$ WC "d_isblank='undef'" $ WC "d_isfinite='undef'" +$ WC "d_isfinitel='undef'" $ WC "d_isinf='undef'" +$ WC "d_isinfl='undef'" +$ WC "d_isless='undef'" $ WC "d_isnan='" + d_isnan + "'" $ WC "d_isnanl='" + d_isnanl + "'" +$ WC "d_isnormal='" + d_isnormal + "'" +$ WC "d_j0='" + d_j0 + "'" +$ WC "d_j0l='undef'" $ WC "d_killpg='undef'" $ WC "d_lchown='" + d_lchown + "'" $ WC "d_ldbl_dig='define'" +$ WC "d_ldexpl='" + d_ldexpl + "'" +$ WC "d_lgamma='" + d_lgamma + "'" $ WC "d_libm_lib_version='undef'" $ WC "d_link='" + d_link + "'" +$ WC "d_llrint='undef'" +$ WC "d_llrintl='undef'" +$ WC "d_llround='undef'" +$ WC "d_llroundl='undef'" $ WC "d_llseek='undef'" +$ WC "d_localtime64='undef'" $ WC "d_locconv='" + d_locconv + "'" +$ WC "d_lc_monetary_2008='undef'" $ WC "d_lockf='undef'" +$ WC "d_log1p='" + d_log1p + "'" +$ WC "d_log2='" + d_log2 + "'" +$ WC "d_logb='" + d_logb + "'" $ WC "d_longdbl='" + d_longdbl + "'" $ WC "d_longlong='" + d_longlong + "'" +$ WC "d_lrint='" + d_lrint + "'" +$ WC "d_lrintl='" + d_lrintl + "'" +$ WC "d_lround='" + d_lround + "'" +$ WC "d_lroundl='" + d_lroundl + "'" $ WC "d_lseekproto='define'" $ WC "d_lstat='" + d_lstat + "'" $ WC "d_madvise='undef'" @@ -5920,12 +6161,17 @@ $ WC "d_mknod='undef'" $ WC "d_mkstemp='" + d_mkstemp + "'" $ WC "d_mkstemps='" + d_mkstemps + "'" $ WC "d_mktime='" + d_mktime + "'" +$ WC "d_mktime64='undef'" $ WC "d_mmap='" + d_mmap + "'" $ WC "d_modfl='" + d_modfl + "'" $ WC "d_modflproto='" + d_modflproto + "'" $ WC "d_modfl_pow32_bug='undef'" $ WC "d_mprotect='" + d_mprotect + "'" $ WC "d_msg='undef'" +$ WC "d_msgctl='undef'" +$ WC "d_msgget='undef'" +$ WC "d_msgrcv='undef'" +$ WC "d_msgsnd='undef'" $ WC "d_msg_ctrunc='undef'" $ WC "d_msg_dontroute='undef'" $ WC "d_msg_oob='undef'" @@ -5935,18 +6181,24 @@ $ WC "d_msghdr_s='undef'" $ WC "d_msync='" + d_msync + "'" $ WC "d_munmap='" + d_munmap + "'" $ WC "d_mymalloc='" + d_mymalloc + "'" +$ WC "d_nan='undef'" $ WC "d_nanosleep='" + d_nanosleep + "'" +$ WC "d_ndbm='undef'" +$ WC "d_ndbm_h_uses_prototypes='undef'" +$ WC "d_nearbyint='undef'" +$ WC "d_nextafter='" + d_nextafter + "'" +$ WC "d_nexttoward='" + d_nexttoward + "'" $ WC "d_nice='define'" $ WC "d_nl_langinfo='" + d_nl_langinfo + "'" $ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'" -$! Pending integrating the probe test -$ WC "nv_overflows_integers_at='0'" +$ 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 + "'" $ WC "d_old_pthread_create_joinable='" + d_old_pthread_create_joinable + "'" $ WC "d_oldarchlib='define'" $ WC "d_oldpthreads='" + d_oldpthreads + "'" +$ WC "d_oldsock='undef'" $ WC "d_open3='define'" $ WC "d_pathconf='" + d_pathconf + "'" $ WC "d_pause='define'" @@ -5954,12 +6206,14 @@ $ WC "d_perl_otherlibdirs='undef'" $ WC "d_phostname='" + d_phostname + "'" $ WC "d_pipe='define'" $ WC "d_poll='" + d_poll + "'" +$ WC "d_portable='define'" $ 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 + "'" $ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'" +$ WC "d_ptrdiff_t='define'" $ WC "d_pwage='undef'" $ WC "d_pwchange='undef'" $ WC "d_pwclass='undef'" @@ -5975,21 +6229,40 @@ $ WC "d_readlink='" + d_readlink + "'" $ WC "d_readv='undef'" $ WC "d_realpath='" + d_realpath + "'" $ WC "d_recvmsg='undef'" +$ WC "d_regcomp='undef'" +$ WC "d_remainder='" + d_remainder + "'" +$ WC "d_remquo='" + d_remquo + "'" $ WC "d_rename='define'" $ WC "d_rewinddir='define'" +$ WC "d_rint='" + d_rint + "'" $ WC "d_rmdir='define'" +$ WC "d_round='undef'" $ WC "d_safebcpy='undef'" $ WC "d_safemcpy='define'" $ WC "d_sanemcmp='define'" $ WC "d_sbrkproto='define'" +$ WC "d_scalbn='undef'" $ WC "d_scalbnl='undef'" $ WC "d_sched_yield='" + d_sched_yield + "'" $ WC "d_scm_rights='undef'" $ WC "d_seekdir='define'" $ WC "d_select='" + d_select + "'" -$ WC "d_sem='undef'" -$ WC "d_semctl_semid_ds='undef'" -$ WC "d_semctl_semun='undef'" +$ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."8.4") +$ THEN +$ WC "d_sem='define'" +$ WC "d_semctl='define'" +$ WC "d_semctl_semid_ds='define'" +$ WC "d_semctl_semun='define'" +$ WC "d_semget='define'" +$ WC "d_semop='define'" +$ ELSE +$ WC "d_sem='undef'" +$ WC "d_semctl='undef'" +$ WC "d_semctl_semid_ds='undef'" +$ WC "d_semctl_semun='undef'" +$ WC "d_semget='undef'" +$ WC "d_semop='undef'" +$ ENDIF $ WC "d_sendmsg='undef'" $ WC "d_setegid='undef'" $ WC "d_setenv='" + d_setenv + "'" @@ -6017,14 +6290,20 @@ $ WC "d_setruid='undef'" $ WC "d_setsent='" + d_setsent + "'" $ WC "d_setsid='" + d_setsid + "'" $ WC "d_setvbuf='" + d_setvbuf + "'" -$ WC "d_sfio='undef'" -$ WC "d_shm='undef'" -$ WC "d_shmatprototype='undef'" +$ WC "d_shm='" + d_shm + "'" +$ WC "d_shmat='" + d_shmat + "'" +$ WC "d_shmatprototype='" + d_shmatprototype + "'" +$ WC "d_shmctl='" + d_shmctl + "'" +$ WC "d_shmdt='" + d_shmdt + "'" +$ WC "d_shmget='" + d_shmget + "'" $ WC "d_sigaction='" + d_sigaction + "'" $ WC "d_signbit='" + d_signbit + "'" $ WC "d_sigprocmask='" + d_sigprocmask + "'" $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" +$ WC "d_sin6_scope_id='" + d_sin6_scope_id + "'" $ WC "d_sitearch='define'" +$ WC "d_sockaddr_in6='define'" +$ WC "d_sockaddr_sa_len='" + d_sockaddr_sa_len + "'" $ WC "d_sockatmark='undef'" $ WC "d_sockatmarkproto='undef'" $ WC "d_socket='" + d_socket + "'" @@ -6037,10 +6316,12 @@ $ WC "d_sresgproto='undef'" $ WC "d_sresgproto='undef'" $ WC "d_sresproto='undef'" $ WC "d_sresuproto='undef'" +$ WC "d_stat='define'" $ WC "d_statblks='undef'" $ WC "d_statfs_f_flags='undef'" $ WC "d_statfs_s='undef'" $ WC "d_statfsflags='undef'" +$ WC "d_static_inline='define'" $ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'" $ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'" $ WC "d_stdio_ptr_lval_nochange_cnt='" + d_stdio_ptr_lval_nochange_cnt + "'" @@ -6049,6 +6330,7 @@ $ WC "d_stdio_stream_array='undef'" $ WC "d_stdiobase='" + d_stdiobase + "'" $ WC "d_stdstdio='" + d_stdstdio + "'" $ WC "d_faststdio='" + d_faststdio + "'" +$ WC "d_statvfs='" + d_statvfs + "'" $ WC "d_strchr='define'" $ WC "d_strcoll='" + d_strcoll + "'" $ WC "d_strctcpy='define'" @@ -6071,13 +6353,16 @@ $ WC "d_symlink='" + d_symlink + "'" $ WC "d_syscall='undef'" $ WC "d_syscallproto='undef'" $ WC "d_sysconf='" + d_sysconf + "'" +$ WC "d_sysernlst='undef'" $ WC "d_syserrlst='undef'" $ WC "d_system='define'" $ WC "d_tcgetpgrp='undef'" $ WC "d_tcsetpgrp='undef'" $ WC "d_telldir='define'" $ WC "d_telldirproto='define'" +$ WC "d_tgamma='" + d_tgamma + "'" $ WC "d_time='define'" +$ WC "d_timegm='undef'" $ WC "d_times='define'" $ IF ("''F$EXTRACT(1,3, F$GETSYI(""VERSION""))'".GES."7.0") $ THEN @@ -6088,6 +6373,8 @@ $ WC "d_tm_tm_gmtoff='undef'" $ WC "d_tm_tm_zone='undef'" $ ENDIF $ WC "d_truncate='" + d_truncate + "'" +$ WC "d_trunc='" + d_trunc + "'" +$ WC "d_truncl='" + d_truncl + "'" $ WC "d_tzname='" + d_tzname + "'" $ WC "d_u32align='define'" $ WC "d_ualarm='" + d_ualarm + "'" @@ -6102,38 +6389,49 @@ $ WC "d_usleep='" + d_usleep + "'" $ WC "d_usleepproto='" + d_usleep + "'" $ WC "d_ustat='undef'" $ WC "d_vendorarch='undef'" +$ WC "d_vendorbin='undef'" $ WC "d_vendorlib='undef'" +$ WC "d_vendorscript='undef'" $ WC "d_vfork='define'" $ WC "d_vms_case_sensitive_symbols='" + d_vms_be_case_sensitive + "'" ! VMS $ WC "d_vms_do_sockets='" + d_vms_do_sockets + "'" ! VMS +$ WC "d_vms_shorten_long_symbols='" + d_vms_shorten_long_symbols + "'" ! VMS $ WC "d_void_closedir='define'" +$ WC "d_voidsig='undef'" +$ WC "d_voidtty='" + "'" $ WC "d_volatile='define'" $ WC "d_vprintf='define'" $ WC "d_vsnprintf='" + d_vsnprintf + "'" $ WC "d_wait4='" + d_wait4 + "'" $ WC "d_waitpid='define'" -$ WC "d_wcstombs='" + d_wcstombs + "'" -$ WC "d_wctomb='" + d_wctomb + "'" +$ WC "d_wcscmp='define'" +$ WC "d_wcstombs='define'" +$ WC "d_wcsxfrm='define'" +$ WC "d_wctomb='define'" $ WC "d_writev='undef'" +$ WC "d_xenix='undef'" $ WC "db_hashtype=' '" $ WC "db_prefixtype=' '" $ WC "db_version_major='" + "'" $ WC "db_version_minor='" + "'" $ WC "db_version_patch='" + "'" $ WC "dbgprefix='" + dbgprefix + "'" -$ WC "defvoidused='15'" $ WC "devtype='" + devtype + "'" $ WC "direntrytype='struct dirent'" $ WC "dlext='" + dlext + "'" $ WC "dlobj='" + dlobj + "'" -$ WC "dlsrc='dl_vms.c'" +$ WC "dlsrc='dl_vms.xs'" +$ WC "doublekind='3'" +$ WC "doubleinfbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f'" +$ WC "doublenanbytes='0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x7f'" +$ WC "doublemantbits='" + doublemantbits + "'" $ 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=' '" @@ -6142,11 +6440,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'" @@ -6160,6 +6456,8 @@ $ WC "gidsign='1'" $ WC "gidsize='4'" $ WC "gidtype='" + gidtype + "'" $ WC "groupstype='Gid_t'" +$ WC "h_fcntl='false'" +$ WC "h_sysfile='false'" $ WC "hint='none'" $ WC "hintfile='" + "'" $ WC "i16size='" + i16size + "'" @@ -6170,18 +6468,24 @@ $ WC "i64size='" + i64size + "'" $ WC "i64type='" + i64type + "'" $ WC "i8size='" + i8size + "'" $ WC "i8type='" + i8type + "'" -$ WC "i_arpainet='undef'" +$ WC "i_arpainet='" + i_arpainet + "'" $ WC "i_assert='define'" +$ WC "i_bfd='undef'" +$ WC "i_bsdioctl='undef'" $ WC "i_crypt='undef'" $ WC "i_db='undef'" $ WC "i_dbm='undef'" -$ WC "i_dirent='" + i_dirent + "'" +$ WC "i_dirent='undef'" ! we roll our own $ WC "i_dlfcn='undef'" +$ WC "i_execinfo='undef'" $ WC "i_fcntl='" + i_fcntl + "'" +$ WC "i_fenv='undef'" $ 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 + "'" @@ -6191,6 +6495,8 @@ $ WC "i_limits='define'" $ WC "i_locale='" + i_locale + "'" $ WC "i_machcthr='undef'" $ WC "i_machcthreads='undef'" +$ WC "i_malloc='undef'" +$ WC "i_mallocmalloc='undef'" $ WC "i_math='define'" $ WC "i_memory='undef'" $ WC "i_mntent='undef'" @@ -6203,19 +6509,28 @@ $ WC "i_poll='" + i_poll + "'" $ WC "i_prot='undef'" $ WC "i_pthread='define'" $ WC "i_pwd='undef'" +$ WC "i_quadmath='undef'" $ WC "i_rpcsvcdbm='undef'" -$ WC "i_sfio='undef'" $ WC "i_sgtty='undef'" $ WC "i_shadow='" + i_shadow + "'" $ WC "i_socks='" + i_socks + "'" $ WC "i_stdarg='define'" +$ IF ccname .EQS. "DEC" .AND. F$INTEGER(Dec_C_Version).GE.60400000 +$ THEN +$ WC "i_stdbool='define'" +$ ELSE +$ WC "i_stdbool='undef'" +$ ENDIF $ WC "i_stddef='define'" +$ WC "i_stdint='undef'" $ WC "i_stdlib='define'" $ WC "i_string='define'" $ WC "i_sunmath='undef'" $ WC "i_sysaccess='" + i_sysaccess + "'" $ WC "i_sysdir='undef'" $ WC "i_sysfile='" + i_sysfile + "'" +$ WC "i_sysfilio='undef'" +$ WC "i_sysin='undef'" $ WC "i_sysioctl='" + i_sysioctl + "'" $ WC "i_syslog='" + i_syslog + "'" $ WC "i_sysmman='undef'" @@ -6223,6 +6538,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'" @@ -6235,7 +6551,7 @@ $ WC "i_systimek='undef'" $ WC "i_systimes='undef'" $ WC "i_systypes='define'" $ WC "i_sysuio='" + i_sysuio + "'" -$ WC "i_sysun='undef'" +$ WC "i_sysun='" + i_sysun + "'" $ WC "i_sysutsname='" + i_sysutsname + "'" $ WC "i_sysvfs='undef'" $ WC "i_syswait='undef'" @@ -6247,6 +6563,7 @@ $ WC "i_ustat='undef'" $ WC "i_utime='" + i_utime + "'" $ WC "i_values='undef'" $ WC "i_varargs='undef'" +$ WC "i_varhdr='stdarg.h'" $ WC "i_vfork='undef'" $ WC "inc_version_list='0'" $ WC "inc_version_list_init='0'" @@ -6267,15 +6584,15 @@ $ WC "ivdformat='" + ivdformat + "'" $ WC "ivsize='" + ivsize + "'" $ WC "ivtype='" + ivtype + "'" $! -$! The known_extensions symbol may be quite long +$! The xs_extensions symbol may be quite long $! -$ tmp = "known_extensions='" + known_extensions + "'" -$ WC/symbol tmp -$ DELETE/SYMBOL tmp +$ WC/symbol "known_extensions='", xs_extensions, " ", nonxs_ext, " ", nonxs_ext2, "'" $ WC "ld='" + ld + "'" +$ WC "ld_can_script='undef'" $ WC "lddlflags='/Share'" $ WC "ldflags='" + ldflags + "'" $ WC "ldflags_uselargefiles='" + "'" +$ WC "ldlibpthname='" + "'" $ WC "lib_ext='" + lib_ext + "'" $ WC "libc='" + libc + "'" $ WC "libpth='/sys$share /sys$library'" @@ -6283,6 +6600,10 @@ $ WC "libs='" + libs + "'" $ WC "libswanted='" + "'" $ WC "libswanted_uselargefiles='" + "'" $ WC "longdblsize='" + longdblsize + "'" +$ WC "longdblkind='" + longdblkind + "'" +$ WC "longdblinfbytes='" + longdblinfbytes + "'" +$ WC "longdblnanbytes='" + longdblnanbytes + "'" +$ WC "longdblmantbits='" + longdblmantbits + "'" $ WC "longlongsize='" + longlongsize + "'" $ WC "longsize='" + longsize + "'" $ IF uselargefiles .OR. uselargefiles .EQS. "define" @@ -6311,10 +6632,14 @@ $ 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 "nvEUformat='" + nvEUformat + "'" $ WC "nvfformat='" + nvfformat + "'" +$ WC "nvFUformat='" + nvFUformat + "'" $ WC "nvgformat='" + nvgformat + "'" +$ WC "nvGUformat='" + nvGUformat + "'" +$ WC "nvmantbits='" + nvmantbits + "'" $ WC "nvsize='" + nvsize + "'" $ WC "nvtype='" + nvtype + "'" $ WC "o_nonblock=' '" @@ -6334,6 +6659,7 @@ $ WC "perl_root='" + perl_root + "'" ! VMS specific $trnlnm() $ WC "perladmin='" + perladmin + "'" $ WC "perllibs='" + perllibs + "'" $ WC "perlpath='" + "''vms_prefix':[000000]Perl''exe_ext'" + "'" +$ WC "perl_static_inline='static inline'" $ WC "perl_symbol='" + perl_symbol + "'" ! VMS specific $ WC "perl_verb='" + perl_verb + "'" ! VMS specific $ WC "pgflquota='" + pgflquota + "'" @@ -6353,15 +6679,19 @@ $ WC "randseedtype='" + randseedtype + "'" $ WC "ranlib='" + "'" $ WC "rd_nodata=' '" $ WC "revision='" + revision + "'" +$ WC "sGMTIME_max='4294967295'" +$ WC "sGMTIME_min='0'" +$ WC "sLOCALTIME_max='4294967295'" +$ WC "sLOCALTIME_min='0'" $ WC "sPRId64='" + sPRId64 + "'" -$ WC "sPRIEldbl='" + sPRIEUldbl + "'" -$ WC "sPRIFldbl='" + sPRIFUldbl + "'" -$ WC "sPRIGldbl='" + sPRIGUldbl + "'" -$ WC "sPRIX64='" + sPRIXU64 + "'" +$ WC "sPRIEUldbl='" + sPRIEUldbl + "'" +$ WC "sPRIFUldbl='" + sPRIFUldbl + "'" +$ WC "sPRIGUldbl='" + sPRIGUldbl + "'" +$ WC "sPRIXU64='" + sPRIXU64 + "'" $ WC "sPRIeldbl='" + sPRIeldbl + "'" $ WC "sPRIfldbl='" + sPRIfldbl + "'" $ WC "sPRIgldbl='" + sPRIgldbl + "'" -$! WC "sPRIi64='" + sPRIi64 + "'" +$ WC "sPRIi64='" + sPRIi64 + "'" $ WC "sPRIo64='" + sPRIo64 + "'" $ WC "sPRIu64='" + sPRIu64 + "'" $ WC "sPRIx64='" + sPRIx64 + "'" @@ -6374,7 +6704,7 @@ $ WC "selectminbits='32'" $ WC "selecttype='" + selecttype + "'" $ WC "sh='MCR'" $ WC "sharpbang='#!'" -$ WC "shmattype='" + " '" +$ WC "shmattype='" + shmattype + "'" $ WC "shortsize='" + shortsize + "'" $ IF (f$length(sig_name) .GE. 244) $ THEN @@ -6415,6 +6745,8 @@ $ WC "src='" + src + "'" $ WC "ssizetype='int'" $ WC "startperl=" + startperl ! This one's special--no enclosing single quotes $ WC "static_ext='" + static_ext + "'" +$ WC "st_ino_size='" + st_ino_size + "'" +$ WC "st_ino_sign='1'" $ WC "stdchar='" + stdchar + "'" $ WC "stdio_base='((*fp)->_base)'" $ WC "stdio_bufsiz='((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)'" @@ -6423,6 +6755,7 @@ $ WC "stdio_ptr='((*fp)->_ptr)'" $ WC "stdio_stream_array=' " + "'" $ WC "subversion='" + subversion + "'" $ WC "targetarch='" + "'" +$ WC "targetsh='MCR'" $ WC "timetype='" + timetype + "'" $ WC "u16size='" + u16size + "'" $ WC "u16type='" + u16type + "'" @@ -6443,29 +6776,36 @@ $ WC "use64bitint='" + use64bitint + "'" $ WC "usecasesensitive='" + be_case_sensitive + "'" ! VMS-specific $ WC "usedebugging_perl='"+use_debugging_perl+"'" $ WC "usedefaulttypes='" + usedefaulttypes + "'" ! VMS-specific +$ WC "usecbacktrace='undef'" $ WC "usecrosscompile='undef'" +$ WC "usedevel='" + usedevel + "'" $ WC "usedl='" + usedl + "'" $ WC "usedtrace='undef'" $ WC "usefaststdio='" + usefaststdio + "'" $ WC "useieee='" + useieee + "'" ! VMS-specific $ WC "useithreads='" + useithreads + "'" $ WC "usekernelthreads='" + usekernelthreads + "'" ! VMS-specific +$ WC "usekernprocpathname='undef'" +$ WC "usensgetexecutablepath='undef'" $ WC "uselargefiles='" + uselargefiles + "'" $ WC "uselongdouble='" + uselongdouble + "'" $ WC "usemorebits='" + usemorebits + "'" $ WC "usemultiplicity='" + usemultiplicity + "'" $ WC "usemymalloc='" + usemymalloc + "'" -$ WC "useperlio='" + useperlio + "'" +$ WC "useperlio='define'" $ WC "useposix='false'" +$ WC "usequadmath='undef'" $ WC "usereentrant='undef'" $ WC "userelocatableinc='undef'" $ WC "usesecurelog='" + usesecurelog + "'" ! VMS-specific +$ WC "useshortenedsymbols='" + useshortenedsymbols + "'" ! 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 "useversionedarchname='" + useversionedarchname + "'" $ WC "usevfork='true'" $ WC "usevmsdebug='" + usevmsdebug + "'" ! VMS-specific $ WC "uvoformat='" + uvoformat + "'" @@ -6475,6 +6815,7 @@ $ WC "uvuformat='" + uvuformat + "'" $ WC "uvxformat='" + uvxformat + "'" $ WC "uvXUformat='" + uvXUformat + "'" $ WC "vendorarch='" + "'" +$ WC "vaproto='define'" $ WC "vendorarchexp='" + "'" $ WC "vendorbin='" + "'" $ WC "vendorbinexp='" + "'" @@ -6488,13 +6829,12 @@ $ WC "version_patchlevel_string='" + version_patchlevel_string + "'" $ WC "vms_cc_type='" + vms_cc_type + "'" ! VMS specific $ WC "vms_prefix='" + vms_prefix + "'" ! VMS specific $ WC "vms_ver='" + vms_ver + "'" ! VMS specific -$ WC "voidflags='15'" $! $! ## The UNIXy POSIXy reentrantey thingys ## $! See "Appendix B, Version-Dependency Tables" in the C RTL $! manual for when assorted _r functions became available. $! -$ IF use_threads .AND. vms_ver .GES. "7.2" +$ IF use_threads $ THEN $ WC "asctime_r_proto='REENTRANT_PROTO_B_SB'" $ WC "d_asctime_r='define'" @@ -6521,7 +6861,7 @@ $ WC "d_getgrnam_r='" + d_getgrnam_r + "'" $ WC "d_gethostbyaddr_r='undef'" $ WC "d_gethostbyname_r='undef'" $ WC "d_gethostent_r='undef'" -$ WC "d_getlogin_r='undef'" +$ WC "d_getlogin_r='define'" $ WC "d_getnetbyaddr_r='undef'" $ WC "d_getnetbyname_r='undef'" $ WC "d_getnetent_r='undef'" @@ -6536,6 +6876,7 @@ $ WC "d_getservbyport_r='undef'" $ WC "d_getservent_r='undef'" $ WC "d_getspnam_r='undef'" $ WC "d_gmtime_r='undef'" ! leave undef'd; we use my_gmtime +$ WC "d_lgamma_r='undef'" $ WC "d_localtime_r='undef'" ! leave undef'd; we use my_localtime $ WC "d_localtime_r_needs_tzset='undef'" $ WC "d_random_r='undef'" @@ -6569,7 +6910,12 @@ $ WC "getgrnam_r_proto='" + getgrnam_r_proto + "'" $ WC "gethostbyaddr_r_proto='0'" $ WC "gethostbyname_r_proto='0'" $ WC "gethostent_r_proto='0'" -$ WC "getlogin_r_proto='0'" +$ IF use_threads +$ THEN +$ WC "getlogin_r_proto='REENTRANT_PROTO_I_BW'" +$ ELSE +$ WC "getlogin_r_proto='0'" +$ ENDIF $ WC "getnetbyaddr_r_proto='0'" $ WC "getnetbyname_r_proto='0'" $ WC "getnetent_r_proto='0'" @@ -6618,12 +6964,12 @@ $ WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library" $ ENDIF $ WRITE CONFIG "Sys$Share:VAXCRTL/Share" $ CLOSE CONFIG -$ 'ld' munchconfig.obj,munchconfig.opt/opt +$ 'ld'/EXE='exe_ext' munchconfig'obj_ext',munchconfig.opt/opt $ DELETE/NOLOG/NOCONFIRM munchconfig.opt; $ ELSE -$ 'ld' munchconfig.obj +$ 'ld'/EXE='exe_ext' munchconfig'obj_ext' $ ENDIF -$ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj; +$ IF F$SEARCH("munchconfig''obj_ext'") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig'obj_ext'; $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c; $ IF ccname .EQS. "CXX" $ THEN @@ -6679,8 +7025,6 @@ $ IF (Has_Dec_C_Sockets) $ THEN $ WC "#define VMS_DO_SOCKETS" $ WC "#define DECCRTL_SOCKETS" -$ ELSE -$ IF Has_Socketshr THEN WC "#define VMS_DO_SOCKETS" $ ENDIF $! This is VMS-specific for now $ WC "#''d_setenv' HAS_SETENV" @@ -6689,25 +7033,25 @@ $ IF d_alwdeftype THEN WC "#define ALWAYS_DEFTYPES" $ IF use64bitint .OR. use64bitint .EQS. "define" $ THEN $ WC "#define USE_64_BIT_INT" +$ ENDIF +$ IF uselongdouble .OR. uselongdouble .EQS. "define" +$ THEN $ WC "#define USE_LONG_DOUBLE" $ 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 shorten_long_symbols THEN WC "#define VMS_SHORTEN_LONG_SYMBOLS" $ 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" -$ IF archname .EQS. "VMS_VAX" .AND. - - ccname .EQS. "DEC" .AND. - - ccversion .LE. 50390006 -$ THEN -$! Alas this does not help to build Fcntl -$! WC "#define PERL_IGNORE_FPUSIG SIGFPE" -$ ENDIF $ IF kill_by_sigprc .EQS. "define" then WC "#define KILL_BY_SIGPRC" $ IF unlink_all_versions .OR. unlink_all_versions .EQS. "define" THEN - WC "#define UNLINK_ALL_VERSIONS" +$ IF d_sockaddr_sa_len .EQS. "define" then WC "#define _SOCKADDR_LEN 1" +$ IF ccname .EQS. "CXX" then WC "#define NO_ENVIRON_ARRAY" +$ IF ccname .EQS. "CXX" then WC "#define VMS" ! only has __VMS by default $ CLOSE CONFIG $! $ echo4 "Doing variable substitutions on .SH files..." @@ -6715,7 +7059,7 @@ $ echo4 "Extracting config.h (with variable substitutions)" $! $! Now build the normal config.h $ DEFINE/USER_MODE sys$output [-]config.main -$ mcr []munchconfig 'config_sh' [-]config_h.sh +$ mcr []munchconfig'exe_ext' 'config_sh' [-]config_h.sh $ ! Concatenate them together $ copy [-]config.local,[-]config.main [-]config.h $! Clean up @@ -6745,21 +7089,11 @@ $ IF Has_Dec_C_Sockets $ THEN $ SOCKET_REPLACE = "SOCKET=DECC_SOCKETS=1" $ ELSE -$ IF Has_Socketshr -$ THEN -$ SOCKET_REPLACE = "SOCKET=SOCKETSHR_SOCKETS=1" -$ ELSE -$ SOCKET_REPLACE = "SOCKET=" -$ ENDIF +$ SOCKET_REPLACE = "SOCKET=" $ ENDIF $ IF use_threads $ THEN -$ IF (vms_ver .LES. "6.2") -$ THEN -$ THREAD_REPLACE = "THREAD=OLDTHREADED=1" -$ ELSE -$ THREAD_REPLACE = "THREAD=THREADED=1" -$ ENDIF +$ THREAD_REPLACE = "THREAD=THREADED=1" $ ELSE $ THREAD_REPLACE = "THREAD=" $ ENDIF @@ -6780,6 +7114,13 @@ $ ENDIF $ ELSE $ LARGEFILE_REPLACE = "LARGEFILE=" $ ENDIF +$ IF use_vmsdebug_perl +$ THEN +$ DEBUG_REPLACE = "USEVMSDEBUG=__DEBUG__=1" +$ ELSE +$ DEBUG_REPLACE = "USEVMSDEBUG=" +$ ENDIF +$ PREFIX_REPLACE = "PREFIX=PREFIX=''prefix'" $! $! 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 @@ -6800,89 +7141,18 @@ $ WC "''THREAD_KERNEL'" $ WC "PV=''version'" $ WC "FLAGS=FLAGS=''extra_flags'" $ WC "''LARGEFILE_REPLACE'" +$ WC "ARCHNAME=ARCHNAME=''archname'" +$ WC "''DEBUG_REPLACE'" +$ WC "''PREFIX_REPLACE'" $ close CONFIG $! $ echo4 "Extracting ''defmakefile' (with variable substitutions)" $ DEFINE/USER_MODE sys$output 'UUmakefile' -$ mcr []munchconfig 'config_sh' 'Makefile_SH' -f extra_subs.txt +$ mcr []munchconfig'exe_ext' 'config_sh' 'Makefile_SH' -f extra_subs.txt $! Clean up after ourselves -$ DELETE/NOLOG/NOCONFIRM []munchconfig.exe; +$ DELETE/NOLOG/NOCONFIRM []munchconfig'exe_ext'; $ 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. @@ -6895,6 +7165,7 @@ $! 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. $! Use FORCE if you've just podified a README.* file on VMS. +$ miniperl = f$search("sys$disk:[]miniperl.%xe;") ! could have alternate extension $ if f$search("extra.pods") .eqs. "" .or. P1 .eqs. "FORCE" then - search README.* "=head"/window=0/output=extra.pods $ open/read/error=extra_close EXTRA extra.pods @@ -6917,7 +7188,7 @@ $ pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT")) $ if file_rdt .GTS. pod_file_rdt then do_copy := true $ endif $ ! wacky method to preserve case on ODS-5 even when parse style is traditional -$ if do_copy then mcr sys$disk:[]miniperl.exe -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});" +$ if do_copy then mcr 'miniperl' -e "exit 0+$^E unless File::Copy::rmscopy(q{''file'}, q{''pod_file'});" $ endif $ endif $ goto extra_loop @@ -6999,8 +7270,8 @@ $ echo "" $ echo4 "The perl.cld file is now being written..." $ OPEN/WRITE CONFIG 'file_2_find' $ ext = ".exe" -$ IF (sharedperl .AND. F$EXTRACT(0,7,archname) .EQS. "VMS_AXP") THEN ext := .AXE -$ IF (sharedperl .AND. F$EXTRACT(0,8,archname) .EQS. "VMS_IA64") THEN ext := .IXE +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_AXP") THEN ext := .AXE +$ IF (sharedperl .AND. F$ELEMENT(0, "-", archname) .EQS. "VMS_IA64") THEN ext := .IXE $ IF (use_vmsdebug_perl) $ THEN $ WRITE CONFIG "define verb dbgperl" @@ -7041,25 +7312,20 @@ $ ELSE $ WRITE CONFIG "$! This perl configured & administered by ''perladmin'" $ ENDIF $ WRITE CONFIG "$!" -$! HP hack to make distributing binaries easier -$!---------------------------------------------- -$ pcsi_producer = f$trnlnm("PCSI_PRODUCER") -$ if pcsi_producer .eqs. "" -$ then -$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' ''prefix'" -$ else -$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" -$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")" -$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000.""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><""" -$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">""" -$ WRITE CONFIG "$ if f$trnlnm(""HP_BUILD_PERL_BIN_KIT"",""LNM$PROCESS_TABLE"") .EQS. """"" -$ WRITE CONFIG "$ then" -$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'myroot_dev'['myroot_dir'.]" -$ WRITE CONFIG "$ endif" -$ endif +$ WRITE CONFIG "$ if P1 .EQS. """"" +$ WRITE CONFIG "$ then" +$ WRITE CONFIG "$ myproc = f$environment(""PROCEDURE"")" +$ WRITE CONFIG "$ myroot_dev = f$parse(myproc,,,""DEVICE"",""NO_CONCEAL"")" +$ WRITE CONFIG "$ myroot_dir = f$parse(myproc,,,""DIRECTORY"",""NO_CONCEAL"")" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000."" - ""><000000.""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""][000000]"" - ""><000000>""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - ""]["" - ""><""" +$ WRITE CONFIG "$ myroot_dir = myroot_dir - "".]"" - "".>"" - ""["" - ""]"" - ""<"" - "">""" +$ WRITE CONFIG "$ root_spec = myroot_dev + ""["" + myroot_dir + "".]""" +$ WRITE CONFIG "$ else" +$ WRITE CONFIG "$ root_spec = P1" +$ WRITE CONFIG "$ endif" +$ WRITE CONFIG "$ define/translation=concealed ''vms_prefix' 'root_spec'" $ WRITE CONFIG "$ ext = "".exe""" $ IF sharedperl $ THEN @@ -7102,19 +7368,10 @@ $ WRITE CONFIG "$!" $ 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""" -$ ENDIF $ WRITE CONFIG "$ enc2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]enc2xs.com""" -$ WRITE CONFIG "$ find2perl == """ + perl_setup_perl + " ''vms_prefix':[utils]find2perl.com""" +$ WRITE CONFIG "$ encguess == """ + perl_setup_perl + " ''vms_prefix':[utils]encguess.com""" $ WRITE CONFIG "$ h2ph == """ + perl_setup_perl + " ''vms_prefix':[utils]h2ph.com""" $ WRITE CONFIG "$ h2xs == """ + perl_setup_perl + " ''vms_prefix':[utils]h2xs.com""" $ WRITE CONFIG "$ instmodsh == """ + perl_setup_perl + " ''vms_prefix':[utils]instmodsh.com""" @@ -7125,7 +7382,6 @@ $ WRITE CONFIG "$ perlivp == """ + perl_setup_perl + " ''vms_prefix':[utils]p $ 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.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""" @@ -7134,12 +7390,13 @@ $ WRITE CONFIG "$ podselect == """ + perl_setup_perl + " ''vms_prefix':[utils]p $ WRITE CONFIG "$ prove == """ + perl_setup_perl + " ''vms_prefix':[utils]prove.com""" $ 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 "$ ptargrep == """ + perl_setup_perl + " ''vms_prefix':[utils]ptargrep.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""" +$ WRITE CONFIG "$ zipdetails == """ + perl_setup_perl + " ''vms_prefix':[utils]zipdetails.com""" $ CLOSE CONFIG $! $ echo "" @@ -7219,6 +7476,11 @@ $ ENDIF $ dflt = F$ENVIRONMENT("DEFAULT") $ IF F$LOCATE("UU]",dflt).EQS.(F$LENGTH(dflt)-3) $ THEN +$ IF ( F$SEARCH("[.CXX_REPOSITORY]*.*").NES."" ) +$ THEN +$ DELETE/NOLOG/NOCONFIRM [.CXX_REPOSITORY]*.*;* +$ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) CXX_REPOSITORY.DIR +$ ENDIF $ IF ( F$SEARCH("[]*.*").NES."" ) THEN DELETE/NOLOG/NOCONFIRM []*.*;* $ SET DEFAULT [-] $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) UU.DIR