+$! OpenVMS configuration procedure for Perl -- do not attempt to run under DOS
$ sav_ver = 'F$VERIFY(0)'
$! SET VERIFY
$!
$! 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"
$ extractsh=""
$ override=""
$ knowitall=""
-$ Using_Dec_C = "n"
-$ Using_Gnu_C = "n"
-$ using_cxx = "n"
+$ ccname="VAX"
$ Dec_C_Version = ""
$ cxxversion = ""
$ use_threads = "F"
$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
$!: Configure runs within the UU subdirectory
$!
$!: compute the number of columns on the terminal for proper question formatting
-$! (sfn, will assume 80-ish)
+$ IF F$MODE() .EQS. "BATCH"
+$! else it winds up being 512 in batch
+$ THEN COLUMNS = 80
+$ ELSE COLUMNS = F$GETDVI("SYS$OUTPUT","DEVBUFSIZ")
+$ ENDIF
+$! "-des" sets SYS$OUTPUT to NL: with a DEVBUFSIZ too large (512 again)
+$ IF COLUMNS .GT. 210 THEN COLUMNS = 80
+$! not sure if this would actually be needed - it hopefully will not hurt
+$ IF COLUMNS .LT. 40 THEN COLUMNS = 40
$!
$!: set up the echo used in my read !sfn
$!: now set up to do reads with possible shell escape and default assignment !sfn
$ GOTO Beyond_myread
$!
+$! The sub_rp splitting is intended to handle long symbols such as the dflt for
+$! extensions.
+$!
$myread:
$ ans = ""
+$ len_rp = F$LENGTH(rp)
$ If (fastread)
$ Then
-$ echo4 "''rp'"
+$ IF len_rp .GT. 210
+$ THEN
+$ i_rp = 0
+$ fastread_rp_loop:
+$ sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$ echo4 "''sub_rp'"
+$ i_rp = i_rp + COLUMNS
+$ IF i_rp .LT. len_rp THEN GOTO fastread_rp_loop
+$ ELSE
+$ echo4 "''rp'"
+$ ENDIF
$ Else
$ If (.NOT. silent) Then echo ""
-$ READ SYS$COMMAND/PROMPT="''rp'" ans
+$ IF len_rp .GT. 210
+$ THEN
+$ i_rp = 0
+$ firstread_rp_loop:
+$ sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$ echo4 "''sub_rp'"
+$ i_rp = i_rp + COLUMNS
+$ IF i_rp .LT. len_rp THEN GOTO firstread_rp_loop
+$ READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$ ELSE
+$ READ SYS$COMMAND/PROMPT="''rp'" ans
+$ ENDIF
$ 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
+$ IF len_rp .GT. 210
+$ THEN
+$ i_rp = 0
+$ secondread_rp_loop:
+$ sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$ echo4 "''sub_rp'"
+$ i_rp = i_rp + COLUMNS
+$ IF i_rp .LT. len_rp THEN GOTO secondread_rp_loop
+$ READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$ ELSE
+$ READ SYS$COMMAND/PROMPT="''rp'" ans
+$ ENDIF
$ 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
+$ IF len_rp .GT. 210
+$ THEN
+$ i_rp = 0
+$ thirdread_rp_loop:
+$ sub_rp = F$EXTRACT(i_rp,COLUMNS,rp)
+$ echo4 "''sub_rp'"
+$ i_rp = i_rp + COLUMNS
+$ IF i_rp .LT. len_rp THEN GOTO thirdread_rp_loop
+$ READ SYS$COMMAND/PROMPT="''sub_rp'" ans
+$ ELSE
+$ READ SYS$COMMAND/PROMPT="''rp'" ans
+$ ENDIF
$ silent := true
$ GOSUB Shut_up
$ ENDIF
$! genconfig.pl has either archname='VMS_AXP' or 'VMS_VAX'
$! Note that DCL in VMS V5.4 does not have F$GETSYI("ARCH_NAME")
$! but does have F$GETSYI("HW_MODEL").
+$! Please try to use either archname .EQS. "VMS_VAX" or archname .EQS.
+$! "VMS_AXP" from here on to allow cross-platform configuration (e.g.
+$! configure a VAX build on an Alpha).
$!
$ IF (F$GETSYI("HW_MODEL") .LT. 1024)
$ THEN
$ vms_prefixup = F$EDIT(vms_prefix,"UPCASE")
$ rp = "Will you be sharing your ''vms_prefixup' with ''otherarch'? [''dflt'] "
$ GOSUB myread
-$ if ans.NES.""
-$ THEN
-$ ans = F$EXTRACT(0,1,F$EDIT(ans,"COLLAPSE, UPCASE"))
-$ ENDIF
-$ IF (ans.NES."Y")
+$ if ans .EQS. "" THEN ans = dflt
+$ IF .NOT. ans
$ THEN
$ sharedperl = "N"
$ ELSE
$!
$ ENDIF !%Config-I-VMS, skip remaining "where install" questions
$!
-$ perl_symbol = "true"
-$ perl_verb = ""
-$ dflt = "y"
+$ IF F$TYPE(perl_symbol) .EQS. "" THEN perl_symbol := true
+$ IF F$TYPE(perl_verb) .EQS. "" THEN perl_verb = ""
+$ IF perl_symbol
+$ THEN dflt = "y"
+$ ELSE dflt = "n"
+$ ENDIF
$ IF .NOT.silent
$ THEN
$ echo ""
$ ENDIF
$ rp = "Invoke perl as a global symbol foreign command? [''dflt'] "
$ GOSUB myread
-$ IF (.NOT.ans).AND.(ans.NES."") THEN perl_symbol = "false"
+$ IF (ans.EQS."") THEN ans = dflt
+$ IF (.NOT.ans) THEN perl_symbol = "false"
$!
$ IF (.NOT.perl_symbol)
$ THEN
-$ dflt = "y"
+$ IF perl_verb .EQS. "DCLTABLES"
+$ THEN dflt = "n"
+$ ELSE dflt = "y"
+$ ENDIF
$ IF .NOT.silent
$ THEN
$ echo ""
$ ENDIF
$ rp = "Invoke perl as a per process command verb? [ ''dflt' ] "
$ GOSUB myread
-$ IF (.NOT.ans).AND.(ans.NES."")
+$ IF (ans.EQS."") THEN ans = dflt
+$ IF (.NOT.ans)
$ THEN perl_verb = "DCLTABLES"
$ ELSE perl_verb = "PROCESS"
$ ENDIF
$ 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
$ 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
$ 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..."
$ 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")
$ 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 <stdio.h>"
$List_Parse:
$ OPEN/READ CONFIG ccvms.lis
$ READ CONFIG line
-$ IF (F$GETSYI("HW_MODEL") .LT. 1024)
+$ IF archname .EQS. "VMS_VAX"
$ THEN
$ read CONFIG line
$ archsufx = "VAX"
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") - "::"
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
$ 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 ""
$ 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
$ 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,"
$ if ans.eqs."PACK_MALLOC" then use_pack_malloc = "Y"
$ ENDIF
$!
+$ known_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
+$ 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 xxx .EQS. "DynaLoader" THEN goto ext_loop ! omit
+$ IF xxx .EQS. "SDBM_File/sdbm" 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'"
+$ 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
+$ dflt = dflt - "ByteLoader" ! needs to be ported
+$ dflt = dflt - "DB_File" ! needs to be ported
+$ dflt = dflt - "GDBM_File" ! needs porting/special library
+$ dflt = dflt - "IPC/SysV" ! needs to be ported
+$ dflt = dflt - "NDBM_File" ! needs porting/special library
+$ dflt = dflt - "ODBM_File" ! needs porting/special library
+$ IF .NOT. Has_socketshr .AND. .NOT. Has_Dec_C_Sockets
+$ THEN
+$ dflt = dflt - "Socket" ! optional on VMS
+$ ENDIF
+$ dflt = F$EDIT(dflt,"TRIM,COMPRESS")
+$!
$! Ask for their default list of extensions to build
$ echo ""
$ echo "It is time to specify which modules you want to build into"
$ echo "SDBM_File if you have the GDBM library built on your machine."
$ echo ""
$ echo "Which modules do you want to build into perl?"
-$! we need to add Byteloader to this list:
-$ dflt = "re Fcntl Encode Errno File::Glob Filter::Util::Call 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
-$ THEN
-$ dflt = dflt + " POSIX"
-$ ENDIF
$ rp = "[''dflt'] "
$ GOSUB myread
-$ if ans.eqs."" then ans = "''dflt'"
-$ a = ""
-$ j = 0
-$ xloop1:
-$ x = f$elem(j," ",ans)
-$ j = j + 1
-$ if x .eqs. " " then goto exloop1
-$ xloop2:
-$ k = f$locate("::",x)
-$ if k .ge. f$len(x) then goto exloop2
-$ x = f$extract(0,k,x) + "/" + f$extract(k+2,f$len(x)-2,x)
-$ goto xloop2
-$ exloop2:
-$ a = a + " " + x
-$ goto xloop1
-$ exloop1:
-$ ans = f$edit(a,"trim")
-$!
-$ a = ""
-$ j = 0
-$ xloop3:
-$ x = f$elem(j," ",dflt)
-$ j = j + 1
-$ if x .eqs. " " then goto exloop3
-$ xloop4:
-$ k = f$locate("::",x)
-$ if k .ge. f$len(x) then goto exloop4
-$ x = f$extract(0,k,x) + "/" + f$extract(k+2,f$len(x)-2,x)
-$ goto xloop4
-$ exloop4:
-$ a = a + " " + x
-$ goto xloop3
-$ exloop3:
-$ dflt = f$edit(a,"trim")
-$!
-$ extensions = "''ans'"
-$ known_extensions = "''dflt'"
+$ if ans .eqs. "" then ans = "''dflt'"
+$ extensions = F$EDIT(ans,"TRIM,COMPRESS")
$!
$! %Config-I-VMS, determine build/make utility here (make gmake mmk mms)
$ echo ""
$! - also take vms/descrip_mms.template -> descrip.mms (VMS Makefile)
$! vms/Makefile.in -> Makefile. (VMS GNU Makefile?)
$! vms/Makefile.SH -> Makefile. (VMS GNU Makefile?)
-$! - build make_ext.com extension builder procedure.
$!
$! Note for folks from other platforms changing things in here:
$!
$ 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
$ use64bitint = "define"
$ uselargefiles = "define"
$ uselongdouble = "define"
+$ alignbytes="16"
$ usemorebits = "define"
$ ELSE
$ use64bitint = "undef"
$!
$ perl_cc=Mcc
$!
-$ IF (sharedperl .AND. F$GETSYI("HW_MODEL") .GE. 1024)
+$ IF (sharedperl .AND. archname .EQS. "VMS_AXP")
$ THEN
$ obj_ext=".abj"
$ so="axe"
$ ELSE
$ libs=" "
$ ENDIF
-$ IF Using_Dec_C .OR. using_cxx
+$ IF ccname .EQS. "DEC" .OR. ccname .EQS. "CXX"
$ THEN
$ libc="(DECCRTL)"
$ ELSE
$ 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"
$ Needs_Opt := Y
$ good_compile = %X10000001
$ ENDIF
-$ IF using_cxx
+$ IF ccname .EQS. "CXX"
$ THEN
$ good_compile = %X15F60001
$ ENDIF
$ WS "int main()"
$ WS "{"
$ WS "char * place;"
-$ WS "place = memchr(""foo"", 47, 3)"
+$ WS "place = memchr(""foo"", 47, 3);"
$ WS "exit(0);"
$ WS "}"
$ CS
$ 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
$! 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"
$ 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"
$ 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="37"
+$ sig_size="36"
$ uidtype="uid_t"
$ d_pathconf="define"
$ d_fpathconf="define"
$ 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="20"
+$ sig_size="19"
$ uidtype="unsigned int"
$ d_pathconf="undef"
$ d_fpathconf="undef"
$ d_sysconf="undef"
$ d_sigsetjmp="undef"
$ ENDIF
+$!: see if tzname[] exists
+$ OS
+$ WS "#include <stdio.h>"
+$ WS "#include <time.h>"
+$ WS "int main() { extern short tzname[]; printf(""%hd"", tzname[0]); }"
+$ CS
+$ GOSUB compile_ok
+$ IF compile_status .EQ. good_compile
+$ THEN
+$ d_tzname = "undef"
+$ echo4 "tzname[] NOT found."
+$ ELSE
+$ d_tzname = "define"
+$ echo4 "tzname[] found."
+$ ENDIF
+$ IF F$SEARCH("try.obj") .NES. "" THEN DELETE/NOLOG/NOCONFIRM try.obj;
+$!
+$ 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"
$ d_strxfrm="define"
$ d_wctomb="define"
$ i_locale="define"
+$ i_langinfo="define"
$ d_locconv="define"
+$ d_nl_langinfo="define"
$ d_setlocale="define"
$ vms_cc_type="decc"
$ ELSE
$ d_strxfrm="undef"
$ d_wctomb="undef"
$ i_locale="undef"
+$ i_langinfo="undef"
$ d_locconv="undef"
+$ d_nl_langinfo="undef"
$ d_setlocale="undef"
$ ENDIF
$ d_stdio_ptr_lval_sets_cnt="undef"
-$ d_stdio_ptr_lval_nochange_cnt="undef"
+$ d_stdio_ptr_lval_nochange_cnt="define"
$!
$! Sockets?
$ if Has_Socketshr .OR. Has_Dec_C_Sockets
$ 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
$ uvuformat="""lu"""
$ uvoformat="""lo"""
$ uvxformat="""lx"""
-$ uvxuformat="""lX"""
+$ uvXUformat="""lX"""
$! uselongdouble?
$ nveformat="""e"""
$ nvfformat="""f"""
$!
$ 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'"
$ WC "CONFIG='true'"
$ WC "Makefile_SH='" + Makefile_SH + "'"
$ WC "Mcc='" + Mcc + "'"
-$ 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 "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 + "'"
$ 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 + "'"
$ 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 + "'"
$ WC "d_PRIFldbl='" + d_PRIFUldbl + "'"
$ WC "d_PRIGldbl='" + d_PRIGUldbl + "'"
$ WC "d_PRIX64='" + d_PRIXU64 + "'"
+$ WC "d_PRId64='" + d_PRId64 + "'"
$ WC "d_PRIeldbl='" + d_PRIeldbl + "'"
$ WC "d_PRIfldbl='" + d_PRIfldbl + "'"
$ WC "d_PRIgldbl='" + d_PRIgldbl + "'"
$ WC "d_PRIu64='" + d_PRIu64 + "'"
$ WC "d_PRIx64='" + d_PRIx64 + "'"
$ WC "d_SCNfldbl='" + d_SCNfldbl + "'"
+$ WC "d__fwalk='undef'"
$ WC "d_access='" + d_access + "'"
$ WC "d_accessx='undef'"
$ WC "d_alarm='define'"
$ WC "d_bcopy='" + d_bcopy + "'"
$ WC "d_bincompat3='undef'"
$ WC "d_bincompat5005='undef'"
-$ WC "d_bsdgetpgrp='undef'"
$! WC "d_bsdpgrp='undef'"
+$ WC "d_bsdgetpgrp='undef'"
$ WC "d_bsdsetpgrp='undef'"
$ WC "d_bzero='" + d_bzero + "'"
$ WC "d_casti32='define'"
$ WC "d_csh='undef'"
$ WC "d_cuserid='define'"
$ WC "d_dbl_dig='define'"
+$ WC "d_dbminitproto='undef'"
$ WC "d_difftime='define'"
$ WC "d_dirnamlen='define'"
$ WC "d_dlerror='undef'"
$ WC "d_eofnblk='undef'"
$ WC "d_eunice='undef'"
$ 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_fgetpos='define'"
$ WC "d_flexfnam='define'"
$ WC "d_flock='undef'"
+$ WC "d_flockproto='undef'"
$ WC "d_fork='undef'"
$ WC "d_fpathconf='" + d_fpathconf + "'"
$ WC "d_fpos64_t='" + d_fpos64_t + "'"
$ WC "d_fstatvfs='undef'"
$ WC "d_fsync='undef'"
$ WC "d_ftello='undef'"
-$ WC "d_getcwd='undef'"
+$ WC "d_getcwd='define'"
$ WC "d_getespwnam='undef'"
$ WC "d_getfsstat='undef'"
$ WC "d_getgrent='define'"
$ 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'"
$ WC "d_mktime='" + d_mktime + "'"
$ WC "d_mmap='undef'"
$ WC "d_modfl='" + d_modfl + "'"
+$ WC "d_modfl_pow32_bug='undef'"
$ WC "d_mprotect='undef'"
$ WC "d_msg='undef'"
$ WC "d_msg_ctrunc='undef'"
$ WC "d_munmap='undef'"
$ WC "d_mymalloc='" + d_mymalloc + "'"
$ WC "d_nice='define'"
+$ WC "d_nl_langinfo='" + d_nl_langinfo + "'"
$ WC "d_nv_preserves_uv='" + d_nv_preserves_uv + "'"
$ WC "d_nv_preserves_uv_bits='" + d_nv_preserves_uv_bits + "'"
$ WC "d_off64_t='" + d_off64_t + "'"
$ 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_atfork='undef'"
$ WC "d_pthread_yield='" + d_pthread_yield + "'"
$ WC "d_pthreads_created_joinable='" + d_pthreads_created_joinable + "'"
$ WC "d_pwage='undef'"
$ WC "d_readdir='define'"
$ WC "d_readlink='undef'"
$ WC "d_readv='undef'"
+$ WC "d_realpath='undef'"
$ WC "d_recvmsg='undef'"
$ WC "d_rename='define'"
$ WC "d_rewinddir='define'"
$ WC "d_safebcpy='undef'"
$ WC "d_safemcpy='define'"
$ WC "d_sanemcmp='define'"
-$ WC "d_sbrkproto='undef'"
+$ WC "d_sbrkproto='define'"
$ WC "d_sched_yield='" + d_sched_yield + "'"
$ WC "d_scm_rights='undef'"
$ WC "d_seekdir='define'"
$ 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 + "'"
$ WC "d_sigaction='" + d_sigaction + "'"
$ WC "d_sigprocmask='" + d_sigprocmask + "'"
$ WC "d_sigsetjmp='" + d_sigsetjmp + "'"
+$ WC "d_sockatmark='undef'"
+$ WC "d_sockatmarkproto='undef'"
$ 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_sresgproto='undef'"
+$ WC "d_sresgproto='undef'"
+$ WC "d_sresproto='undef'"
+$ WC "d_sresuproto='undef'"
$ WC "d_statblks='undef'"
$ WC "d_statfs_f_flags='undef'"
$ 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_ptr_lval_sets_cnt='" + d_stdio_ptr_lval_sets_cnt + "'"
$ WC "d_stdio_stream_array='undef'"
$ WC "d_stdiobase='" + d_stdiobase + "'"
$ WC "d_stdstdio='" + d_stdstdio + "'"
$ 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_suidsafe='undef'"
$ WC "d_symlink='undef'"
$ WC "d_syscall='undef'"
+$ WC "d_syscallproto='undef'"
$ WC "d_sysconf='" + d_sysconf + "'"
$ WC "d_syserrlst='undef'"
$ WC "d_system='define'"
$ WC "d_telldirproto='define'"
$ WC "d_times='define'"
$ WC "d_truncate='" + d_truncate + "'"
-$ WC "d_tzname='undef'"
+$ WC "d_tzname='" + d_tzname + "'"
+$ 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_usleepproto='undef'"
$ WC "d_ustat='undef'"
$ WC "d_vendorarch='undef'"
$ WC "d_vendorlib='undef'"
$ WC "dlsrc='dl_vms.c'"
$ WC "doublesize='" + doublesize + "'"
$ WC "drand01='" + drand01 + "'"
-$ WC "dynamic_ext='" + extensions + "'"
+$!
+$! The extensions symbol may be quite long
+$!
+$ tmp = "dynamic_ext='" + extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
$ WC "eagain=' '"
$ WC "ebcdic='undef'"
$ WC "embedmymalloc='" + mymalloc + "'"
$ WC "eunicefix=':'"
$ WC "exe_ext='" + exe_ext + "'"
-$ WC "extensions='" + extensions + "'"
+$!
+$! The extensions symbol may be quite long
+$!
+$ tmp = "extensions='" + extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
$ WC "fflushNULL='define'"
$ WC "fflushall='undef'"
$ WC "fpostype='fpos_t'"
$ WC "i_iconv='" + i_iconv +"'"
$ WC "i_ieeefp='undef'"
$ WC "i_inttypes='" + i_inttypes + "'"
+$ WC "i_langinfo='" + i_langinfo + "'"
$ WC "i_libutil='" + i_libutil + "'"
$ WC "i_limits='define'"
$ WC "i_locale='" + i_locale + "'"
$ 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'"
$ WC "ivdformat='" + ivdformat + "'"
$ WC "ivsize='" + ivsize + "'"
$ WC "ivtype='" + ivtype + "'"
-$ WC "known_extensions='" + known_extensions + "'"
+$!
+$! The known_extensions symbol may be quite long
+$!
+$ tmp = "known_extensions='" + known_extensions + "'"
+$ WC/symbol tmp
+$ DELETE/SYMBOL tmp
$ WC "ld='" + ld + "'"
$ WC "lddlflags='/Share'"
-$ WC "ldflags='" + ldflags " "'"
+$ WC "ldflags='" + ldflags + "'"
$ WC "lib_ext='" + lib_ext + "'"
$ WC "libc='" + libc + "'"
$ WC "libpth='/sys$share /sys$library'"
$ WC "selectminbits='32'"
$ WC "selecttype='" + selecttype + "'"
$ WC "sh='MCR'"
-$ WC "shmattype='" + "'"
+$ WC "shmattype='" + " '"
$ WC "shortsize='" + shortsize + "'"
$ WC "shrplib='define'"
$ WC "sig_name='" + sig_name + "'"
$ WC "use64bitall='" + use64bitall + "'"
$ WC "use64bitint='" + use64bitint + "'"
$ WC "usedebugging_perl='" + use_debugging_perl + "'"
+$ WC "usecrosscompile='undef'"
$ WC "usedl='" + usedl + "'"
$ WC "useithreads='" + useithreads + "'"
$ WC "uselargefiles='" + uselargefiles + "'"
$ WC "usemymalloc='" + usemymalloc + "'"
$ WC "useperlio='" + useperlio + "'"
$ WC "useposix='false'"
+$ WC "usereentrant='undef'"
$ WC "usesocks='undef'"
$ WC "usethreads='" + usethreads + "'"
$ WC "usevfork='true'"
$ WC "uvtype='" + uvtype + "'"
$ WC "uvuformat='" + uvuformat + "'"
$ WC "uvxformat='" + uvxformat + "'"
-$ WC "uvxuformat='" + uvxuformat + "'"
+$ WC "uvXUformat='" + uvXUformat + "'"
$ WC "vendorarchexp='" + "'"
$ WC "vendorlib_stem='" + "'"
$ WC "vendorlibexp='" + "'"
$ WC "vms_ver='" + vms_ver + "'" ! VMS specific
$ WC "voidflags='15'"
$ WC "xs_apiversion='" + version + "'"
-$ WC "CONFIGDOTSH='true'"
+$ WC "PERL_CONFIG_SH='true'"
$!
$! ##END WRITE NEW CONSTANTS HERE##
$!
$ 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
$ 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
$ 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"
$ 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
$ CLOSE CONFIG
$!
$ echo4 "Doing variable substitutions on .SH files..."
$ 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
"''Thread_Live_Dangerously'" "PV=''version'" "FLAGS=FLAGS=''extra_flags'"
$! Clean up after ourselves
$ DELETE/NOLOG/NOCONFIRM []munchconfig.exe;
+$!
$ echo4 "Extracting make_ext.com (without variable substitutions)"
$ Create Sys$Disk:[-]make_ext.com
$ Deck/Dollar="$EndOfTpl$"
$! Any changes made to it directly will be lost. If you need to make any
$! changes, please edit the template in Configure.Com instead.
$ def = F$Environment("Default")
-$ exts1 = F$Edit(p1,"Compress")
-$ p2 = F$Edit(p2,"Upcase,Compress,Trim")
-$ If F$Locate("MCR ",p2).eq.0 Then p2 = F$Extract(3,255,p2)
-$ miniperl = "$" + F$Search(F$Parse(p2,".Exe"))
-$ makeutil = p3
-$ if f$type('p3') .nes. "" then makeutil = 'p3'
-$ targ = F$Edit(p4,"Lowercase")
+$! 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," ",p1)
-$ If ext .eqs. " " Then Goto done
+$ ext = f$element(i," ",extensions)
+$ If ext .eqs. " " .or. ext .eqs. "" Then Goto done
$ Define/User_mode Perl_Env_Tables CLISYM_LOCAL
$ miniperl
$ deck
$!-- 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
$!
$ CALL Bad_environment "T"
$ CALL Bad_environment "FOO"
$ CALL Bad_environment "EXT"
+$ CALL Bad_environment "SOME_LOGICAL_NAME_NOT_LIKELY"
+$ CALL Bad_environment "DOWN_LOGICAL_NAME_NOT_LIKELY"
$ CALL Bad_environment "TEST" "SYMBOL"
$ IF f$search("config.msg") .eqs. "" THEN echo "OK."
$!
$ echo4 "The perl.cld file is now being written..."
$ OPEN/WRITE CONFIG 'file_2_find'
$ ext = ".exe"
-$ IF ((sharedperl) .AND. (F$GETSYI("HW_MODEL") .GE. 1024)) THEN ext := .AXE
+$ IF (sharedperl .AND. archname .EQS. "VMS_AXP") THEN ext := .AXE
$ IF (use_vmsdebug_perl)
$ THEN
$ WRITE CONFIG "define verb dbgperl"
$ 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")
$ DELETE/NOLOG/NOCONFIRM UU.DIR;
$ ENDIF
$ SET DEFAULT 'vms_default_directory_name' !be kind rewind
-$ STOP
$ EXIT
$!: End of Configure