X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=configure.com;h=2aa9541994c05a08e8e526cc34337df39f016ad7;hb=1dc48e0232d5e1e7ab09019a7e4801927094dcd6;hp=be0992afdefb60b11b7dc6e9acca20b3dba66264;hpb=403396f30d585890949c05474748da70e45175f2;p=p5sagit%2Fp5-mst-13.2.git diff --git a/configure.com b/configure.com index be0992a..2aa9541 100644 --- a/configure.com +++ b/configure.com @@ -30,8 +30,6 @@ $! with much valuable help from Charles Bailey & $! the whole VMSPerl crew. $! Extended and messed about with by Dan Sugalski $! -$ sav_ver = F$VERIFY(0) -$! $! VMS-isms we will need: $ echo = "write sys$output " $ cat = "type" @@ -53,10 +51,20 @@ $ use_two_pot_malloc = "N" $ use_pack_malloc = "N" $ use_debugmalloc = "N" $ ccflags = "" +$ static_ext = "" $ 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] $! +$! Sebastian Bazley's request: close the CONFIG handle with /NOLOG +$! qualifier "just in case" (configure.com is re @ed in a bad state). +$! This construct was tested to be not a problem as far back as +$! VMS V5.5-2, hopefully earlier versions are OK as well. +$! +$ CLOSE/NOLOG CONFIG +$! +$! Now keep track of open files +$! $ vms_filcnt = F$GETJPI ("","FILCNT") $! $!: compute my invocation name @@ -125,9 +133,7 @@ $ silent="" $ extractsh="" $ override="" $ knowitall="" -$ Using_Dec_C = "n" -$ Using_Gnu_C = "n" -$ using_cxx = "n" +$ ccname="VAX" $ Dec_C_Version = "" $ cxxversion = "" $ use_threads = "F" @@ -352,7 +358,8 @@ $! $Shut_up: $ IF F$Mode() .eqs. "BATCH" $ THEN -$ STDOUT = F$GetQuI("DISPLAY_JOB","LOG_SPECIFICATION",,"THIS_JOB") +$ 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" $ WRITE SYS$OUTPUT STDOUT @@ -1214,12 +1221,20 @@ $ line = F$EDIT(line,"COMPRESS, TRIM") $ api_subversion = F$ELEMENT(2," ",line) $ got_api_subversion = "true" $ ENDIF -$ IF (.NOT.got_patch).OR.(.NOT.got_sub) THEN GOTO Patchlevel_h_loop +$ IF (.NOT. got_patch) .OR. - + (.NOT. got_sub) .OR. - + (.NOT. got_api_revision) .OR. - + (.NOT. got_api_version) .OR. - + (.NOT. got_api_subversion) - + THEN GOTO Patchlevel_h_loop $Close_patch: $ CLOSE CONFIG $ ELSE $ patchlevel="0" $ subversion="0" +$ api_revision="0" +$ api_version="0" +$ api_subversion="0" $ ENDIF $ IF (F$STRING(subversion) .NES. "0") $ THEN @@ -1595,13 +1610,14 @@ $ Mcc = ans $ IF (F$LOCATE("dec",ans).NE.F$LENGTH(ans)).or.(F$LOCATE("compaq",ans).NE.F$LENGTH(ans)) $ THEN $ Mcc = "cc/decc" -$ Using_Dec_C := Y +$! CPQ ? +$ ccname := DEC $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ IF F$LOCATE("cxx",F$EDIT(ans,"COLLAPSE,LOWERCASE")) .NE. F$LENGTH(ans) $ THEN $ Mcc = "cxx" -$ using_cxx := Y +$ ccname := CXX $ ld = ld_try $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ELSE ! Not_cxx @@ -1612,12 +1628,12 @@ $ IF F$LOCATE("dec",dflt) .NE. F$LENGTH(dflt) .or. - $ THEN $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ELSE -$ Using_Dec_C := Y +$ ccname := DEC $ ENDIF $ ELSE $ IF Mcc .EQS. "cc/decc" $ THEN -$ Using_Dec_C := Y +$ ccname := DEC $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ ENDIF @@ -1626,18 +1642,18 @@ $ ELSE $ Mcc = dflt $ IF Mcc .EQS. "cc/decc" $ THEN -$ Using_Dec_C := Y +$ ccname := DEC $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ IF Mcc .EQS. "gcc" $ THEN -$ Using_Gnu_C := Y +$ ccname := GCC $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ ENDIF $ ENDIF $Decc_Version_check: $ ccversion="" -$ IF Using_Dec_C +$ IF ccname .EQS. "DEC" $ THEN $ echo "" $ echo4 "Checking for the Dec C version number..." @@ -1690,7 +1706,7 @@ $ DELETE/NOLOG/NOCONFIRM deccvers.*; $ ENDIF $Gcc_check: $ gccversion = "" -$ IF Using_Gnu_C +$ IF ccname .EQS. "GCC" $ THEN $ vaxcrtl_olb = F$SEARCH("SYS$LIBRARY:VAXCRTL.OLB") $ vaxcrtl_exe = F$SEARCH("SYS$SHARE:VAXCRTL.EXE") @@ -1797,14 +1813,14 @@ $ GOTO Host_name $ ELSE $ echo "You are using GNU cc ''line'" $ gccversion = line -$ Using_Gnu_C := Y +$ ccname := "GCC" $ C_COMPILER_Replace = "CC=cc=''Mcc'" $ GOTO Include_dirs $ ENDIF $ ENDIF $ ENDIF $Cxx_Version_check: -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ OPEN/WRITE CONFIG cxxvers.c $ WRITE CONFIG "#include " @@ -1916,6 +1932,10 @@ $ IF myhostname.eqs."".and. - F$TRNLNM("UCX$INET_HOST") .nes. "" .and. - F$TRNLNM("UCX$INET_DOMAIN") .nes. "" THEN - myhostname = F$TRNLNM("UCX$INET_HOST") + "." + F$TRNLNM("UCX$INET_DOMAIN") +$ IF myhostname.eqs."".and. - + F$TRNLNM("TCPIP$INET_HOST") .nes. "" .and. - + F$TRNLNM("TCPIP$INET_DOMAIN") .nes. "" THEN - + myhostname = F$TRNLNM("TCPIP$INET_HOST") + "." + F$TRNLNM("TCPIP$INET_DOMAIN") $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("TCPWARE_DOMAINNAME") $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("NEWS_ADDRESS") $ IF myhostname.eqs."" THEN myhostname = F$TRNLNM("SYS$NODE") - "::" @@ -1969,12 +1989,15 @@ is most probably close to the reality but may not be valid from outside your organization... $ EOD $ ENDIF -$ dflt = "''cf_by'@''myhostname'"+"''mydomain'" -$ rp = "What is your e-mail address? [''dflt'] " -$ GOSUB myread -$ IF ans .nes. "" -$ THEN cf_email = ans -$ ELSE cf_email = dflt +$ IF F$TYPE(cf_email) .EQS. "" +$ THEN +$ dflt = "''cf_by'@''myhostname'"+"''mydomain'" +$ rp = "What is your e-mail address? [''dflt'] " +$ GOSUB myread +$ IF ans .nes. "" +$ THEN cf_email = ans +$ ELSE cf_email = dflt +$ ENDIF $ ENDIF $! $ IF .NOT.silent @@ -2019,7 +2042,7 @@ $!: compute shared library extension $!: 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 +$!: see if we have sigaction or sigprocmask $!: see whether socketshr exists $ IF (F$SEARCH(F$PARSE("SocketShr","Sys$Share:.Exe")).NES."") $ THEN @@ -2029,7 +2052,8 @@ $ echo4 "Hmm... Looks like you have SOCKETSHR Berkeley networking support." $ ELSE $ Has_socketshr = "F" $ ENDIF -$ IF (Dec_C_Version .GE. 50200000) .or. using_cxx +$ IF (ccname .EQS. "DEC" .AND. Dec_C_Version .GE. 50200000) .OR. - + (ccname .EQS. "CXX") $ THEN $ Has_Dec_C_Sockets = "T" $ echo "" @@ -2061,6 +2085,10 @@ $ 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 +$ IF Has_Dec_C_Sockets .or. Has_socketshr +$ THEN +$ static_ext = f$edit(static_ext+" "+"Socket","trim,compress") +$ ENDIF $! $! $! Ask if they want to build with VMS_DEBUG perl @@ -2161,7 +2189,7 @@ $ ENDIF $ ENDIF ! AXP && >= 7.1 $! $! Ask about threads, if appropriate -$ IF Using_Dec_C .OR. using_cxx +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN $ echo "" $ echo "This version of Perl can be built with threads. While really nifty," @@ -2367,9 +2395,9 @@ $ echo "you might, for example, want to build GDBM_File instead of" $ echo "SDBM_File if you have the GDBM library built on your machine." $ echo "" $ echo "Which modules do you want to build into perl?" -$! dflt = "Fcntl Errno File::Glob IO Opcode Byteloader Devel::Peek Devel::DProf Data::Dumper attrs re VMS::Stdio VMS::DCLsym B SDBM_File" -$ dflt = "re Fcntl Errno File::Glob IO Opcode Devel::Peek Devel::DProf Data::Dumper attrs VMS::Stdio VMS::DCLsym B SDBM_File Storable Thread Sys::Hostname" -$ IF Using_Dec_C .OR. using_cxx +$! we need to add Byteloader to this list: +$ dflt = "B Data::Dumper Devel::DProf Devel::Peek Digest::MD5 Encode Errno Fcntl File::Glob Filter::Util::Call IO List::Util MIME::Base64 Opcode PerlIO::Scalar SDBM_File Storable Sys::Hostname Thread Time::HiRes Time::Piece VMS::DCLsym VMS::Stdio XS::Typemap attrs re" +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN $ dflt = dflt + " POSIX" $ ENDIF @@ -2594,6 +2622,39 @@ $ GOTO Clean_up $ ENDIF $ ENDIF $! +$! PerlIO abstraction +$! +$ dflt = "n" +$ IF F$TYPE(useperlio) .NES. "" +$ THEN +$ IF useperlio THEN dflt = "y" +$ IF useperlio .EQS. "define" THEN dflt = "y" +$ ENDIF +$ IF .NOT. silent +$ THEN +$ echo "Previous version 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 the default. This 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 '" + dflt + "'." +$ ENDIF +$ rp = "Use the experimental PerlIO abstraction layer? [''dflt'] " +$ GOSUB myread +$ IF ans .EQS. "" THEN ans = dflt +$ IF ans +$ THEN +$ useperlio = "define" +$ ELSE +$ echo "Ok, doing things the stdio way." +$ useperlio = "undef" +$ ENDIF +$! $ echo "" $ echo4 "Checking the C run-time library." $! @@ -2653,11 +2714,11 @@ $ vms_ver = F$EXTRACT(1,3, osvers) $ IF F$LENGTH(Mcc) .EQ. 0 THEN Mcc := "cc" $ MCC = f$edit(mcc, "UPCASE") $ C_Compiler_Replace := "CC=CC=''Mcc'''ccflags'" -$ IF Using_Dec_C +$ IF ccname .EQS. "DEC" $ THEN $ Checkcc := "''Mcc'/prefix=all" $ ELSE -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ Checkcc := cxx $ ELSE @@ -2684,6 +2745,7 @@ $ THEN $ use64bitint = "define" $ uselargefiles = "define" $ uselongdouble = "define" +$ alignbytes="16" $ usemorebits = "define" $ ELSE $ use64bitint = "undef" @@ -2733,7 +2795,8 @@ $ ELSE d_mymalloc="undef" $ ENDIF $! $ usedl="define" -$ startperl="""$ perl 'f$env(\""procedure\"")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' !\n$ exit++ + ++$status != 0 and $exit = $status = undef;""" +$ 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 @@ -2741,7 +2804,7 @@ $ libs="SYS$SHARE:CMA$LIB_SHR.EXE/SHARE SYS$SHARE:CMA$RTL.EXE/SHARE SYS$SHARE: $ ELSE $ libs=" " $ ENDIF -$ IF Using_Dec_C .OR. using_cxx +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN $ libc="(DECCRTL)" $ ELSE @@ -2860,7 +2923,7 @@ $ CS := "close CONFIG" $ DS := "delete/nolog/noconfirm []try.*;*" $ Needs_Opt := N $ good_compile = %X10B90001 -$ IF Using_Gnu_C +$ IF ccname .EQS. "GCC" $ THEN $ open/write OPTCHAN []try.opt $ write OPTCHAN "Gnu_CC:[000000]gcclib.olb/library" @@ -2869,7 +2932,7 @@ $ Close OPTCHAN $ Needs_Opt := Y $ good_compile = %X10000001 $ ENDIF -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ good_compile = %X15F60001 $ ENDIF @@ -3475,6 +3538,54 @@ $ tmp = "fcntl" $ GOSUB inlibc $ d_fcntl = tmp $! +$! Check for fcntl locking capability +$! +$ echo4 "Checking if fcntl-based file locking works... " +$ tmp = "undef" +$ IF d_fcntl .EQS. "define" +$ THEN +$ OS +$ WS "#include " +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "#include " +$ WS "int main() {" +$ WS "#if defined(F_SETLK) && defined(F_SETLKW)" +$ WS " struct flock flock;" +$ WS " int retval, fd;" +$ WS " fd = open(""try.c"", O_RDONLY);" +$ WS " flock.l_type = F_RDLCK;" +$ WS " flock.l_whence = SEEK_SET;" +$ WS " flock.l_start = flock.l_len = 0;" +$ WS " retval = fcntl(fd, F_SETLK, &flock);" +$ WS " close(fd);" +$ WS " (retval < 0 ? printf(""undef\n"") : printf(""define\n""));" +$ WS "#else" +$ WS " printf(""undef\n"");" +$ WS "#endif" +$ WS "}" +$ CS +$ GOSUB link_ok +$ IF compile_status .EQ. good_compile .AND. link_status .EQ. good_link +$ THEN +$ GOSUB just_mcr_it +$ IF tmp .EQS. "define" +$ THEN +$ echo4 "Yes, it seems to work." +$ ELSE +$ echo4 "Nope, it didn't work." +$ ENDIF +$ ELSE +$ echo4 "I'm unable to compile the test program, so I'll assume not." +$ tmp = "undef" +$ ENDIF +$ ELSE +$ echo4 "Nope, since you don't even have fcntl()." +$ ENDIF +$ d_fcntl_can_lock = tmp +$! $! Check for memchr $! $ OS @@ -3547,6 +3658,42 @@ $ tmp = "strtoll" $ GOSUB inlibc $ d_strtoll = tmp $! +$! Check for strtoq +$! +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS "__int64 result;" +$ WS "result = strtoq(""123123"", NULL, 10);" +$ WS "exit(0);" +$ WS "}" +$ CS +$ tmp = "strtoq" +$ GOSUB inlibc +$ d_strtoq = tmp +$! +$! Check for strtoq +$! +$ OS +$ WS "#if defined(__DECC) || defined(__DECCXX)" +$ WS "#include " +$ WS "#endif" +$ WS "#include " +$ WS "int main()" +$ WS "{" +$ WS "__int64 result;" +$ WS "result = strtoq(""123123"", NULL, 10);" +$ WS "exit(0);" +$ WS "}" +$ CS +$ tmp = "strtoq" +$ GOSUB inlibc +$ d_strtoq = tmp +$! $! Check for strtold $! $ OS @@ -3764,6 +3911,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 setenv $! $ OS @@ -4301,7 +4485,7 @@ $ IF F$SEARCH("try.obj").NES."" THEN DELETE/NOLOG/NOCONFIRM try.obj;* $ IF F$SEARCH("try.exe").NES."" THEN DELETE/NOLOG/NOCONFIRM try.exe;* $ IF F$SEARCH("try.opt").NES."" THEN DELETE/NOLOG/NOCONFIRM try.opt;* $ IF F$SEARCH("try.out").NES."" THEN DELETE/NOLOG/NOCONFIRM try.out;* -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ CALL Cxx_demangler_cleanup $ ENDIF @@ -4309,7 +4493,7 @@ $! $! Some that are compiler or VMS version sensitive $! $! Gnu C stuff -$ IF Using_Gnu_C +$ IF ccname .EQS. "GCC" $ THEN $ d_attribut="define" $ vms_cc_type="gcc" @@ -4319,12 +4503,14 @@ $ d_attribut="undef" $ ENDIF $! $! Dec C >= 5.2 and VMS ver >= 7.0 -$ IF (Using_Dec_C).AND.(F$INTEGER(Dec_C_Version).GE.50200000).AND.(vms_ver .GES. "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_gettimeod="define" $ d_uname="define" $ d_sigaction="define" +$ d_sigprocmask="define" $ d_truncate="define" $ d_wait4="define" $ d_index="define" @@ -4337,6 +4523,7 @@ $ sig_name_init = psnwc1 + psnwc2 + psnwc3 $ sig_num="0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 6 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 64"",0" $ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,64,0" $! perl_sig_num_with_commas=sig_num_init +$ sig_size="36" $ uidtype="uid_t" $ d_pathconf="define" $ d_fpathconf="define" @@ -4348,6 +4535,7 @@ $ d_gettimeod="undef" $ d_bcmp="undef" $ d_uname="undef" $ d_sigaction="undef" +$ d_sigprocmask="undef" $ d_truncate="undef" $ d_wait4="undef" $ d_index="undef" @@ -4358,6 +4546,7 @@ $ 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"",0" $ sig_num_init="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,6,16,17,0" $! perl_sig_num_with_commas=sig_num_init +$ sig_size="19" $ uidtype="unsigned int" $ d_pathconf="undef" $ d_fpathconf="undef" @@ -4365,8 +4554,15 @@ $ d_sysconf="undef" $ d_sigsetjmp="undef" $ ENDIF $! +$ IF d_gethname .EQS. "undef" .AND. d_uname .EQS. "undef" +$ THEN +$ d_phostname="define" +$ ELSE +$ d_phostname="undef" +$ ENDIF +$! $! Dec C alone -$ IF Using_Dec_C +$ IF ccname .EQS. "DEC" $ THEN $ d_mbstowcs="define" $ d_mbtowc="define" @@ -4401,6 +4597,8 @@ $ i_locale="undef" $ d_locconv="undef" $ d_setlocale="undef" $ ENDIF +$ d_stdio_ptr_lval_sets_cnt="undef" +$ d_stdio_ptr_lval_nochange_cnt="undef" $! $! Sockets? $ if Has_Socketshr .OR. Has_Dec_C_Sockets @@ -4425,7 +4623,7 @@ $ d_gethostprotos="define" $ d_getnetprotos="define" $ d_getprotoprotos="define" $ d_getservprotos="define" -$ IF Using_Dec_C .OR. using_cxx +$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX" $ THEN $ socksizetype="unsigned int" $ ELSE @@ -4612,6 +4810,7 @@ $ ivdformat="""ld""" $ uvuformat="""lu""" $ uvoformat="""lo""" $ uvxformat="""lx""" +$ uvXUformat="""lX""" $! uselongdouble? $ nveformat="""e""" $ nvfformat="""f""" @@ -4621,12 +4820,12 @@ $! Finally the composite ones. All config $! $ myuname="''osname' ''myname' ''osvers' ''F$EDIT(hwname, "TRIM")'" $! -$ IF Using_Dec_C .AND. (.NOT. using_cxx) +$ IF ccname .EQS. "DEC" $ THEN $ ccflags="/Include=[]/Standard=Relaxed_ANSI/Prefix=All/Obj=''obj_ext'/NoList''ccflags'" $ ENDIF $ i_dirent = "undef" -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ i_dirent = "define" $ ccflags="/Include=[]/Standard=ANSI/Prefix=All/Obj=''obj_ext'/NoList''ccflags'" @@ -4634,9 +4833,11 @@ $ ENDIF $ IF use_vmsdebug_perl $ THEN $ optimize="/Debug/NoOpt" +$ ldflags="/Debug/Trace/Map" $ dbgprefix = "DBG" $ ELSE $ optimize= "" +$ ldflags="/NoTrace/NoMap" $ dbgprefix = "" $ ENDIF $! @@ -4661,10 +4862,13 @@ $ WC "" $ WC "CONFIG='true'" $ WC "Makefile_SH='" + Makefile_SH + "'" $ WC "Mcc='" + Mcc + "'" -$! WC "PERL_SUBVERSION='" + subversion + "'" ! VMS specific to descrip_mms.template -$ WC "PERL_VERSION='" + patchlevel + "'" ! VMS specific to descrip_mms.template +$ WC "PERL_REVISION='" + revision + "'" +$ WC "PERL_VERSION='" + patchlevel + "'" +$ WC "PERL_SUBVERSION='" + subversion + "'" +$ WC "PERL_API_VERSION='" + api_version + "'" +$ WC "PERL_API_SUBVERSION='" + api_subversion + "'" $ WC "alignbytes='" + alignbytes + "'" -$ WC "aphostname='" + "'" +$ WC "aphostname='write sys$output f$edit(f$getsyi(\""SCSNODE\""),\""TRIM,LOWERCASE\"")'" $ WC "ar='" + "'" $ WC "archlib='" + archlib + "'" $ WC "archlibexp='" + archlibexp + "'" @@ -4679,6 +4883,7 @@ $ WC "cc='" + perl_cc + "'" $ WC "cccdlflags='" + cccdlflags + "'" $ WC "ccdlflags='" + ccdlflags + "'" $ WC "ccflags='" + ccflags + "'" +$ WC "ccname='" + ccname + "'" $ WC "ccversion='" + ccversion + "'" $ WC "cf_by='" + cf_by + "'" $ WC "cf_email='" + cf_email + "'" @@ -4691,6 +4896,7 @@ $ WC "cppminus='" + cppminus + "'" $ WC "cpprun='" + cpprun + "'" $ WC "cppstdin='" + cppstdin + "'" $ WC "crosscompile='undef'" +$ WC "d__fwalk='undef'" $ WC "d_Gconvert='my_gconvert(x,n,t,b)'" $ WC "d_PRId64='" + d_PRId64 + "'" $ WC "d_PRIEldbl='" + d_PRIEUldbl + "'" @@ -4750,6 +4956,7 @@ $ WC "d_eunice='undef'" $ WC "d_fchmod='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_fgetpos='define'" $ WC "d_flexfnam='define'" @@ -4763,6 +4970,7 @@ $ WC "d_fseeko='undef'" $ WC "d_fsetpos='define'" $ WC "d_fstatfs='undef'" $ WC "d_fstatvfs='undef'" +$ WC "d_fsync='undef'" $ WC "d_ftello='undef'" $ WC "d_getcwd='undef'" $ WC "d_getespwnam='undef'" @@ -4774,6 +4982,7 @@ $ WC "d_gethbyname='" + d_gethbyname + "'" $ WC "d_gethent='" + d_gethent + "'" $ WC "d_gethname='" + d_gethname + "'" $ WC "d_gethostprotos='" + d_gethostprotos + "'" +$ WC "d_getitimer='undef'" $ WC "d_getlogin='define'" $ WC "d_getmnt='undef'" $ WC "d_getmntent='undef'" @@ -4781,6 +4990,7 @@ $ WC "d_getnbyaddr='" + d_getnbyaddr + "'" $ WC "d_getnbyname='" + d_getnbyname + "'" $ WC "d_getnent='" + d_getnent + "'" $ WC "d_getnetprotos='" + d_getnetprotos + "'" +$ WC "d_getpagsz='undef'" $ WC "d_getpbyname='" + d_getpbyname + "'" $ WC "d_getpbynumber='" + d_getpbynumber + "'" $ WC "d_getpent='" + d_getpent + "'" @@ -4860,7 +5070,7 @@ $ WC "d_open3='define'" $ WC "d_pathconf='" + d_pathconf + "'" $ WC "d_pause='define'" $ WC "d_perl_otherlibdirs='undef'" -$ WC "d_phostname='undef'" +$ WC "d_phostname='" + d_phostname + "'" $ WC "d_pipe='define'" $ WC "d_poll='undef'" $ WC "d_pthread_yield='" + d_pthread_yield + "'" @@ -4885,6 +5095,7 @@ $ WC "d_rmdir='define'" $ WC "d_safebcpy='undef'" $ WC "d_safemcpy='define'" $ WC "d_sanemcmp='define'" +$ WC "d_sbrkproto='define'" $ WC "d_sched_yield='" + d_sched_yield + "'" $ WC "d_scm_rights='undef'" $ WC "d_seekdir='define'" @@ -4899,6 +5110,7 @@ $ WC "d_seteuid='undef'" $ WC "d_setgrent='undef'" $ WC "d_setgrps='undef'" $ WC "d_sethent='" + d_sethent + "'" +$ WC "d_setitimer='undef'" $ WC "d_setlinebuf='undef'" $ WC "d_setlocale='" + d_setlocale + "'" $ WC "d_setnent='" + d_setnent + "'" @@ -4922,7 +5134,9 @@ $ WC "d_sfio='undef'" $ WC "d_shm='undef'" $ WC "d_shmatprototype='undef'" $ WC "d_sigaction='" + d_sigaction + "'" +$ WC "d_sigprocmask='" + d_sigprocmask + "'" $ WC "d_sigsetjmp='" + d_sigsetjmp + "'" +$ WC "d_sockatmark='undef'" $ WC "d_socket='" + d_socket + "'" $ WC "d_socklen_t='" + d_socklen_t + "'" $ WC "d_sockpair='undef'" @@ -4934,6 +5148,8 @@ $ WC "d_statfs_s='undef'" $ WC "d_statfsflags='undef'" $ WC "d_stdio_cnt_lval='" + d_stdio_cnt_lval + "'" $ WC "d_stdio_ptr_lval='" + d_stdio_ptr_lval + "'" +$ WC "d_stdio_ptr_lval_sets_cnt='" + d_stdio_ptr_lval_sets_cnt + "'" +$ WC "d_stdio_ptr_lval_nochange_cnt='" + d_stdio_ptr_lval_nochange_cnt + "'" $ WC "d_stdio_stream_array='undef'" $ WC "d_stdiobase='" + d_stdiobase + "'" $ WC "d_stdstdio='" + d_stdstdio + "'" @@ -4942,10 +5158,12 @@ $ WC "d_strcoll='" + d_strcoll + "'" $ WC "d_strctcpy='define'" $ WC "d_strerrm='strerror((e),vaxc$errno)'" $ WC "d_strerror='define'" +$ WC "d_strftime='define'" $ WC "d_strtod='define'" $ WC "d_strtol='define'" $ WC "d_strtold='" + d_strtold + "'" $ WC "d_strtoll='" + d_strtoll + "'" +$ WC "d_strtoq='define'" $ WC "d_strtoul='define'" $ WC "d_strtoull='" + d_strtoull + "'" $ WC "d_strtouq='" + d_strtouq + "'" @@ -4963,10 +5181,13 @@ $ WC "d_telldirproto='define'" $ WC "d_times='define'" $ WC "d_truncate='" + d_truncate + "'" $ WC "d_tzname='undef'" +$ WC "d_u32align='define'" +$ WC "d_ualarm='undef'" $ WC "d_umask='define'" $ WC "d_uname='" + d_uname + "'" $ WC "d_union_semun='undef'" $ WC "d_unlink_all_versions='undef'" +$ WC "d_usleep='undef'" $ WC "d_ustat='undef'" $ WC "d_vendorarch='undef'" $ WC "d_vendorlib='undef'" @@ -5072,6 +5293,7 @@ $ WC "i_sysparam='undef'" $ WC "i_sysresrc='undef'" $ WC "i_syssecrt='" + i_syssecrt + "'" $ WC "i_sysselct='undef'" +$ WC "i_syssockio='undef'" $ WC "i_sysstat='define'" $ WC "i_sysstatfs='undef'" $ WC "i_sysstatvfs='undef'" @@ -5111,7 +5333,7 @@ $ WC "ivtype='" + ivtype + "'" $ WC "known_extensions='" + known_extensions + "'" $ WC "ld='" + ld + "'" $ WC "lddlflags='/Share'" -$ WC "ldflags='/NoTrace/NoMap'" +$ WC "ldflags='" + ldflags + "'" $ WC "lib_ext='" + lib_ext + "'" $ WC "libc='" + libc + "'" $ WC "libpth='/sys$share /sys$library'" @@ -5132,6 +5354,7 @@ $ WC "multiarch='undef'" $ WC "mydomain='" + mydomain + "'" $ WC "myhostname='" + myhostname + "'" $ WC "myuname='" + myuname + "'" +$ WC "need_va_copy='undef'" $ WC "netdb_hlen_type='" + netdb_hlen_type + "'" $ WC "netdb_host_type='" + netdb_host_type + "'" $ WC "netdb_name_type='" + netdb_name_type + "'" @@ -5191,7 +5414,7 @@ $ WC "seedfunc='" + seedfunc + "'" $ WC "selectminbits='32'" $ WC "selecttype='" + selecttype + "'" $ WC "sh='MCR'" -$ WC "shmattype='" + "'" +$ WC "shmattype='" + " '" $ WC "shortsize='" + shortsize + "'" $ WC "shrplib='define'" $ WC "sig_name='" + sig_name + "'" @@ -5200,6 +5423,7 @@ $ WC/symbol tmp $ DELETE/SYMBOL tmp $ WC "sig_num='" + sig_num + "'" $ WC "sig_num_init='" + sig_num_init + "'" +$ WC "sig_size='" + sig_size + "'" $ WC "signal_t='" + signal_t + "'" $ WC "sitearch='" + sitearch + "'" $ WC "sitearchexp='" + sitearchexp + "'" @@ -5214,7 +5438,7 @@ $ WC "spitshell='write sys$output '" $ WC "src='" + src + "'" $ WC "ssizetype='int'" $ WC "startperl=" + startperl ! This one's special--no enclosing single quotes -$ WC "static_ext='" + "'" +$ WC "static_ext='" + static_ext + "'" $ WC "stdchar='" + stdchar + "'" $ WC "stdio_base='((*fp)->_base)'" $ WC "stdio_bufsiz='((*fp)->_cnt + (*fp)->_ptr - (*fp)->_base)'" @@ -5247,7 +5471,7 @@ $ WC "uselongdouble='" + uselongdouble + "'" $ WC "usemorebits='" + usemorebits + "'" $ WC "usemultiplicity='" + usemultiplicity + "'" $ WC "usemymalloc='" + usemymalloc + "'" -$ WC "useperlio='undef'" +$ WC "useperlio='" + useperlio + "'" $ WC "useposix='false'" $ WC "usesocks='undef'" $ WC "usethreads='" + usethreads + "'" @@ -5257,6 +5481,7 @@ $ WC "uvsize='" + uvsize + "'" $ WC "uvtype='" + uvtype + "'" $ WC "uvuformat='" + uvuformat + "'" $ WC "uvxformat='" + uvxformat + "'" +$ WC "uvXUformat='" + uvXUformat + "'" $ WC "vendorarchexp='" + "'" $ WC "vendorlib_stem='" + "'" $ WC "vendorlibexp='" + "'" @@ -5279,7 +5504,7 @@ $ 'Perl_CC' munchconfig.c $ IF Needs_Opt $ THEN $ OPEN/WRITE CONFIG []munchconfig.opt -$ IF Using_Gnu_C +$ IF ccname .EQS. "GCC" $ THEN $ WRITE CONFIG "Gnu_CC:[000000]gcclib.olb/library" $ ENDIF @@ -5292,7 +5517,7 @@ $ 'ld' munchconfig.obj $ ENDIF $ IF F$SEARCH("munchconfig.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.obj; $ IF F$SEARCH("munchconfig.c") .NES. "" THEN DELETE/NOLOG/NOCONFIRM munchconfig.c; -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ CALL Cxx_demangler_cleanup $ ENDIF @@ -5342,7 +5567,7 @@ $ IF use_two_pot_malloc THEN WC "#define TWO_POT_OPTIMIZE" $ IF mymalloc THEN WC "#define EMBEDMYMALLOC" $ IF use_pack_malloc THEN WC "#define PACK_MALLOC" $ IF use_debugmalloc THEN WC "#define DEBUGGING_MSTATS" -$ IF Using_Gnu_C THEN WC "#define GNUC_ATTRIBUTE_CHECK" +$ IF ccname .EQS. "GCC" THEN WC "#define GNUC_ATTRIBUTE_CHECK" $ IF (Has_Dec_C_Sockets) $ THEN $ WC "#define VMS_DO_SOCKETS" @@ -5380,19 +5605,19 @@ $ DELETE/NOLOG [-]CONFIG.MAIN;* $ DELETE/NOLOG [-]CONFIG.LOCAL;* $ DELETE/NOLOG [-]CONFIG.FDL;* $! -$ IF Using_Dec_C +$ IF ccname .EQS. "DEC" $ THEN $ DECC_REPLACE = "DECC=decc=1" $ ELSE $ DECC_REPLACE = "DECC=" $ ENDIF -$ IF using_cxx +$ IF ccname .EQS. "CXX" $ THEN $ DECCXX_REPLACE = "DECCXX=DECCXX=1" $ ELSE $ DECCXX_REPLACE = "DECCXX=" $ ENDIF -$ IF Using_Gnu_C +$ IF ccname .EQS. "GCC" $ THEN $ GNUC_REPLACE = "GNUC=gnuc=1" $ ELSE @@ -5494,6 +5719,49 @@ $ 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. +$! +$ echo4 "Extracting extra_pods.com (without variable substitutions)" +$ Create Sys$Disk:[-]extra_pods.com +$ Deck/Dollar="$EOExtra_Pods$" +$!++ extra_pods.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. +$! Use FORCE if you've just podified a README.* file on VMS. +$ 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 +$extra_loop: +$ read/error=extra_close/END_OF_FILE=extra_close EXTRA file +$ file_type = f$parse(file,,,"TYPE",) - "." +$ if file_type .nes. "VMS" .and. file_type .nes. "vms" +$ then +$ pod_file = "[.pod]perl''file_type'.pod" +$ file = file - "''f$parse(file,,,"VERSION",)'" +$ if p1 .eqs. "CLEAN" +$ then if f$search(pod_file) .nes. "" then delete/log 'pod_file';* +$ else +$ do_copy := false +$ if f$search(pod_file) .eqs. "" +$ then do_copy := true +$ else +$ file_rdt = f$cvtime(f$file_attributes(file,"RDT")) +$ pod_file_rdt = f$cvtime(f$file_attributes(pod_file,"RDT")) +$ if file_rdt .GTS. pod_file_rdt then do_copy := true +$ endif +$ if do_copy then copy/log/noconfirm 'file' 'pod_file' +$ endif +$ endif +$ goto extra_loop +$extra_close: +$ close EXTRA +$ if p1 .eqs. "CLEAN" .and. f$search("extra.pods;-1") .nes. "" then - + purge/nolog extra.pods +$!-- extra_pods.com +$EOExtra_Pods$ $! $! Warn of dangerous symbols or logical names $! @@ -5736,8 +6004,8 @@ $ THEN $ DEASSIGN SYS$OUTPUT $! DEASSIGN SYS$ERROR $ ENDIF -$ IF F$GETJPI("","FILCNT").NE.vms_filcnt THEN CLOSE CONFIG -$ IF F$GETJPI("","FILCNT").NE.vms_filcnt +$ IF F$GETJPI("","FILCNT").GT.vms_filcnt THEN CLOSE CONFIG +$ IF F$GETJPI("","FILCNT").GT.vms_filcnt $ THEN WRITE SYS$ERROR "%Config-W-VMS, WARNING: There is a file still open" $ ENDIF $ dflt = F$ENVIRONMENT("DEFAULT") @@ -5749,6 +6017,5 @@ $ SET PROTECTION=(SYSTEM:RWED,OWNER:RWED) UU.DIR $ DELETE/NOLOG/NOCONFIRM UU.DIR; $ ENDIF $ SET DEFAULT 'vms_default_directory_name' !be kind rewind -$ STOP $ EXIT $!: End of Configure