$! VMS-isms we will need:
$ echo = "write sys$output "
$ cat = "type"
+$ delete := delete ! local symbol overrides globals with qualifiers
$ gcc_symbol = "gcc"
$ ld = "Link"
$ ans = ""
$ echo4 "First let's make sure your kit is complete. Checking..."
$ manifestfound = ""
$ miss_list = ""
-$! Here I assume we are in the [foo.PERL5xxx.VMS...] tree
+$! Here I assume we are in the [foo.PERLxxx...] tree
$! because the search routine simply does set def [-] if necessary.
$ file_2_find = "MANIFEST" !I hope this one is not in [foo.PERL5xxx.VMS...]
$Research_manifest:
$ Then
$ echo4 "''rp'"
$ Else
-$ If (silent)
-$ Then
+$ If (.NOT. silent) Then echo ""
+$ READ SYS$COMMAND/PROMPT="''rp'" ans
+$ IF (ans .EQS. "&-d")
+$ THEN
+$ echo4 "(OK, I will run with -d after this question.)"
+$ IF (.NOT. silent) THEN echo ""
$ READ SYS$COMMAND/PROMPT="''rp'" ans
-$ Else
+$ fastread := yes
+$ ENDIF
+$ IF (ans .EQS. "&-s")
+$ THEN
+$ echo4 "(OK, I will run with -s after this question.)"
$ echo ""
$ READ SYS$COMMAND/PROMPT="''rp'" ans
-$ Endif
+$ silent := true
+$ GOSUB Shut_up
+$ ENDIF
$ Endif
$ RETURN
$!
$ CLOSE CONFIG
$ ENDIF
$!
+$ IF F$TYPE(usedevel) .EQS. "" THEN usedevel := n
+$ patchlevel_h = F$SEARCH("[-]patchlevel.h")
+$ IF (patchlevel_h.NES."")
+$ THEN
+$ SEARCH 'patchlevel_h "define","PERL_VERSION","epoch"/match=and/out=[]ver.out
+$ IF .NOT. usedevel
+$ THEN
+$ OPEN/READ CONFIG []ver.out
+$ READ CONFIG line
+$ CLOSE CONFIG
+$ tmp = F$EDIT(line,"TRIM,COMPRESS")
+$ xpatchlevel = F$INTEGER(F$ELEMENT(2," ",tmp))
+$ line = xpatchlevel / 2
+$ tmp = xpatchlevel - ( line * 2 )
+$ IF tmp .NE. 0
+$ THEN
+$ echo4 "patchlevel is " + F$STRING(xpatchlevel)
+$ cat4 SYS$INPUT:
+*** WHOA THERE!!! ***
+
+ This is an UNSTABLE DEVELOPMENT release.
+ (The patchlevel, is odd--as opposed to even,
+ and that signifies a development release. If you want a
+ maintenance release, you want an even-numbered release.)
+
+ Do ***NOT*** install this into production use.
+ Data corruption and crashes are possible.
+
+ It is most seriously suggested that you do not continue any further
+ unless you want to help in developing and debugging Perl.
+
+$ dflt="n"
+$ rp="Do you really want to continue? [''dflt'] "
+$ IF (fastread) THEN fastread := FALSE
+$ GOSUB myread
+$ IF ans .EQS. "" THEN ans = dflt
+$ IF ans
+$ THEN
+$ echo4 "Okay, continuing."
+$ ELSE
+$ echo4 "Okay, bye."
+$ DELETE/NOLOG/NOCONFIRM []ver.out;
+$ GOTO Clean_up
+$ STOP
+$ exit 0
+$ ENDIF
+$ ENDIF
+$ DELETE/SYMBOL line
+$ DELETE/SYMBOL tmp
+$ ENDIF
+$ DELETE/NOLOG/NOCONFIRM []ver.out;
+$ ENDIF
$!: general instructions
$ needman = "true"
$ firsttime = "true"
$ ENDIF
$ IF (i.LT.max) THEN GOTO Config_sh_look
$! genconfig.pl has "osname='VMS'"
-$ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE")
+$ osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE")
$ IF (configshfound.EQS."")
$ THEN
$ config_sh = "[-]config.sh" ! the fallback default
$ GOTO Beyond_config_sh
$ ENDIF
$Config_sh_found:
+$ IF F$TYPE(osname) .EQS. "" THEN osname = F$EDIT(F$GETSYI("NODE_SWTYPE"),"COLLAPSE")
$ IF F$TYPE(config_dflt) .EQS. "" THEN config_dflt = "n"
$ rp = "Shall I @ ''config_sh' for default answers? [''config_dflt'] "
$ GOSUB myread
+$ IF ans .EQS. "" THEN ans = config_dflt
$ IF ans
$ THEN
$ echo ""
$ echo "If you have no idea what this means, and don't have
$ echo "any program requiring anything, choose the default.
$ dflt = be_case_sensitive
-$ rp = "Case-sensitive symbols [''dflt'] "
+$ rp = "Build with case-sensitive symbols? [''dflt'] "
$ gosub myread
$ if ans.eqs."" then ans="''dflt'"
$ be_case_sensitive = "''ans'"
$ echo "internally, as do most things on VMS. You can, however, build
$ echo "with IEEE floating point numbers instead if you need to.
$ dflt = use_ieee_math
-$ rp = "Use IEEE math [''dflt'] "
+$ rp = "Use IEEE math? [''dflt'] "
$ gosub myread
$ if ans.eqs."" then ans="''dflt'"
$ use_ieee_math = "''ans'"
$! CC Flags
$ echo ""
$ echo "You can, if you need to, pass extra flags on to the C
-$ echo "compiler. In general you should only do this if you really,
+$ echo "compiler. In general you should only do this if you really,
$ echo "really know what you're doing.
$ dflt = user_c_flags
$ rp = "Extra C flags [''dflt'] "
$ 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 Thread Sys::Hostname"
+$ 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
$ THEN
$ dflt = dflt + " POSIX"
$ THEN
$ echo "Here is the list of builders you can apparently use:"
$ echo "(",ok_builders," )"
-$ rp = "Which """"make"""" utility do you wish to use [''dflt']? "
+$ rp = "Which """"make"""" utility do you wish to use? [''dflt'] "
$ GOSUB myread
$ ans = F$EDIT(ans,"TRIM, COMPRESS")
$ ans = F$EXTRACT(0,F$LOCATE(" ",ans),ans) !throw out "-f Makefile." here
$!
$!: locate the preferred pager for this system
$!pagers = "most|more|less|type/page"
-$!rp='What pager is used on your system?'
+$!rp="What pager is used on your system? [''dflt'] "
+$ pager="most"
$!
$! update [.vms]config.vms here
$!
$ echo ""
$ echo4 "Checking the C run-time library."
$!
-$! SUBCONFIGURE.COM
+$! Former SUBCONFIGURE.COM
$!
$! - build a config.sh for VMS Perl.
$! - use built config.sh to take config_h.SH -> config.h
$!
$ usedl="define"
$ startperl="""$ perl 'f$env(\""procedure\"")' 'p1' 'p2' 'p3' 'p4' 'p5' 'p6' 'p7' 'p8' !\n$ exit++ + ++$status != 0 and $exit = $status = undef;"""
-$!: locate the preferred pager for this system
-$! rp="What pager is used on your system?"
-$ pager="most"
$!
$ IF ((Use_Threads) .AND. (vms_ver .LES. "6.2"))
$ THEN
$ uvuformat="""lu"""
$ uvoformat="""lo"""
$ uvxformat="""lx"""
+$! uselongdouble?
+$ nveformat="""e"""
+$ nvfformat="""f"""
+$ nvgformat="""g"""
$!
$! Finally the composite ones. All config
$!
$ WC "d_socket='" + d_socket + "'"
$ WC "d_socklen_t='" + d_socklen_t + "'"
$ WC "d_sockpair='undef'"
+$ WC "d_socks5_init='undef'"
$ WC "d_sqrtl='define'"
$ WC "d_statblks='undef'"
$ WC "d_statfs_f_flags='undef'"
$ WC "netdb_host_type='" + netdb_host_type + "'"
$ WC "netdb_name_type='" + netdb_name_type + "'"
$ WC "netdb_net_type='" + netdb_net_type + "'"
+$ WC "nveformat='" + nveformat + "'"
+$ WC "nvfformat='" + nvfformat + "'"
+$ WC "nvgformat='" + nvgformat + "'"
$ WC "nvsize='" + nvsize + "'"
$ WC "nvtype='" + nvtype + "'"
$ WC "o_nonblock=' '"
to configure things, answer yes to the following question.
$ dflt="n"
-$ rp="Do you wish to edit ''basename_config_sh'? "
+$ rp="Do you wish to edit ''basename_config_sh'? [''dflt'] "
$ GOSUB myread
$ IF ans .EQS. "" then ans = dflt
$ IF ans
$!++ Build_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 [.vms]SubConfigure.Com instead.
+$! changes, please edit the template in Configure.Com instead.
$ def = F$Environment("Default")
$ exts1 = F$Edit(p1,"Compress")
$ p2 = F$Edit(p2,"Upcase,Compress,Trim")