1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524
|
$! Name: CHECK.COM
$! Author: Bob Wells (wells@atm.ox.ac.uk)
$! Date: 14-Mar-00
$! $Id: check.com,v 1.11 2001/06/02 00:35:54 moniot Rel $
$! Purpose: To provide some checking of the VMS FTNCHEK distribution
$! as in the unix distribution make check.
$! Most of the prolems arise from the different way in which
$! files are named and some effort is needed to to produce output
$! identical to that of unix systems.
$! MAKEDCL2INC involves the use of AWK which is not provided in the
$! standard VMS distribution. It can be obtained from the Freeware CD
$! or downloaded from http://www.openvms.digital.com/freeware
$! Usage: @CHECK
$!
$ Noadwrite: Subroutine ! P1= Text to be output
$! Purpose: perform non-advancing write to screen
$! Special case: terminates with newline if P1 = "done"
$ If P1 .NES. "done"
$ Then
$ Read/Time=0/Error=Next SYS$COMMAND Line/Prompt="''P1'"
$ Else
$ Read/Time=0/Error=Next SYS$COMMAND Line/Prompt="''F$FAO("!AS!/","done")'"
$ Endif
$ Next:
$ EndSubroutine
$!
$ Doedit: Subroutine ! P1=Filename P2=string P3=substitute string
$! Purpose: replace all occurrences of a string in a file
$ Open/Write TMP REPLACE.EDT
$ Write TMP "substitute\" + P2 + "\" + F$Edit(P3,"LOWERCASE") + "\ 1:999999 /notype"
$ Write TMP "ex"
$ Close TMP
$ Assign NLA0: SYS$OUTPUT
$ Edit/EDT/NOJOURNAL/Command=REPLACE.EDT 'P1'
$ Deassign SYS$OUTPUT
$ Delete/Noconfirm REPLACE.EDT;
$ EndSubroutine
$!
$ Doftnchek: Subroutine ! P1=FTNCHEK argument list P2=Output file
$! Purpose: run FTNCHEK with specified arguments and redirect output to a file
$ Open/Write TMP 'P2'
$ Set Noon
$ Assign/User TMP SYS$OUTPUT
$ Assign/User TMP SYS$ERROR
$ Ftnchek 'P1'
$ Close TMP
$ Set On
$ EndSubroutine
$!
$ Compare: Subroutine ! P1=filename P2=Unix extension
$! Purpose: compare two FTNCHEK output files for differences
$ Char = F$Extract ( F$Locate(".",P1)-1, 1, P1 ) + P2
$ Vary = "[.VARY]" + P1
$ Okay = "[.OKAY]" + P1
$ Call Doedit 'Vary' .;9 'Char'
$ Differences/Ignore=(Spacing,Blank)/Output=F1.TMP 'Vary' 'Okay'
$ Open/Read TMP F1.TMP
$ Read TMP Line
$ Close TMP
$ Delete/Noconfirm F1.TMP;
$ If Line .EQS. "Number of difference sections found: 0"
$ Then
$ Call Noadwrite "."
$ Delete/Noconfirm 'Vary';*
$ Else
$ Write SYS$OUTPUT "====> Differences found in " + P1 + " test <===="
$ Write SYS$OUTPUT "Master: " + F$Search(Okay)
$ Write SYS$OUTPUT "Test: " + F$Search(Vary)
$ Write SYS$OUTPUT "---------------------------------------------------------"
$ Purge 'Vary'
$ EndIf
$ EndSubroutine
$!
$ Check: Subroutine ! P1=file P2=.ext of output P3=options
$! Purpose: run FTNCHEK with specified options and compare output with master
$ Tmpfil = F$Extract ( 0, F$Length(P1)-1, P1 ) + ".;9"
$ Cffil = P1 + "." + P2
$ Params = P3 + " " + Tmpfil
$ IF F$Search ("''P1'.F") .NES. "" Then Rename 'P1'.F 'Tmpfil'
$ Call Doftnchek "''Params'" [.VARY]'Cffil'
$ IF F$Search (Tmpfil) .NES. "" Then Rename 'Tmpfil' 'P1'.F
$ Call Compare 'Cffil' ".f"
$ EndSubroutine
$
$ Checklist: Subroutine ! P1=file
$! Purpose: run FTNCHEK with list checks using the .OPT files
$ Optfil = "''P1'.OPT"
$ If F$Search(Optfil) .NES. ""
$ Then
$ Copy 'Optfil' F1.TMP
$ Call Doedit F1.TMP "''P1'.f" " "
$ Open/Read TMP F1.TMP
$ Read TMP Params
$ Close TMP
$ Delete/Noconfirm F1.TMP;*
$ Else
$ Params = "-list -symt -port"
$ Endif
$ Call Check 'P1' FCL "''Params'"
$ EndSubroutine
$!------------------------------------------------------------------------------
$ CheckF90: Subroutine ! P1=file P2=.ext of output P3=options
$! Purpose: like Check but for .F90 file extension
$ Tmpfil = F$Extract ( 0, F$Length(P1)-1, P1 ) + ".;9"
$ Cffil = P1 + "." + P2
$ Params = P3 + " " + Tmpfil
$ IF F$Search ("''P1'.F90") .NES. "" Then Rename 'P1'.F90 'Tmpfil'
$ Call Doftnchek "''Params'" [.VARY]'Cffil'
$ IF F$Search (Tmpfil) .NES. "" Then Rename 'Tmpfil' 'P1'.F90
$ Call Compare 'Cffil' ".f90"
$ EndSubroutine
$
$ Checkfreeform: Subroutine ! P1=file
$! Purpose: run FTNCHEK with freeform checks using the .OPT files
$ Optfil = "''P1'.OPT"
$ If F$Search(Optfil) .NES. ""
$ Then
$ Copy 'Optfil' F1.TMP
$ Call Doedit F1.TMP "''P1'.f90" " "
$ Open/Read TMP F1.TMP
$ Read TMP Params
$ Close TMP
$ Delete/Noconfirm F1.TMP;*
$ Else
$ Params = "-list -symt -port"
$ Endif
$ Call CheckF90 'P1' FCL "''Params'"
$ EndSubroutine
$!------------------------------------------------------------------------------
$ Checkexpert: Subroutine ! P1=file
$! Purpose: run FTNCHEK with list checks using the .OPT files and -nonovice
$! Adapted from Checklist by R. Moniot.
$ Optfil = "''P1'.OPT"
$ If F$Search(Optfil) .NES. ""
$ Then
$ Copy 'Optfil' F1.TMP
$ Call Doedit F1.TMP "''P1'.f" " "
$ Open/Read TMP F1.TMP
$ Read TMP Params
$ Close TMP
$ Delete/Noconfirm F1.TMP;*
$ Else
$ Params = "-list -symt -port"
$ Endif
$ Params = "-nonovice " + Params
$ Call Check 'P1' FCX "''Params'"
$ EndSubroutine
$!
$!------------------------------------------------------------------------------
$ On Control_Y Then GoTo Finish
$ On Warning Then GoTo Finish
$ On Error Then GoTo Finish
$ Setverify = 'F$Verify(0)'
$ Startdir = F$Environment("DEFAULT")
$ Comma = "," ! For use as a list separator
$!
$! Set up FTNCHEK command
$ File = F$Search("FTNCHEK.EXE")
$ If File .EQS. ""
$ Then
$ Write SYS$OUTPUT "ERROR ===> Cannot run checks: no FTNCHEK found <==="
$ GoTo Finish
$ Else
$ FTNCHEK := $'File'
$ EndIf
$!
$ Set Default [.TEST]
$!
$! Check for pre-defined logical (environment) variables
$ Assign F1.TMP SYS$OUTPUT
$ Show Logical
$ Deassign SYS$OUTPUT
$ Search/Nowarning/Output=F2.TMP F1.TMP FTNCHEK_
$ Delete/Noconfirm F1.TMP;
$ Open/Read TMP F2.TMP
$ Read/End_Of_File=Empty_Logical TMP Line
$ Close TMP
$ Write SYS$OUTPUT "WARNING ===> Logical names are defined <===
$ Type F2.TMP
$ Write SYS$OUTPUT "These need to be DEASSIGNed before running CHECK"
$ Delete/Noconfirm F2.TMP;
$ GoTo Finish
$ Empty_Logical:
$ Close TMP
$ Delete/Noconfirm F2.TMP;
$!
$! Check for existing default configuration files
$ If F$Search("SYS$LOGIN:.FTNCHEKRC") .NES. ""
$ Then
$ Write SYS$OUTPUT "WARNING ===> SYS$LOGIN:.FTNCHEKRC exists <==="
$ Write SYS$OUTPUT "delete or rename it before running check"
$ GoTo Finish
$ EndIf
$ If F$Search("SYS$LOGIN:FTNCHEK.INI") .NES. ""
$ Then
$ Write SYS$OUTPUT "WARNING ===> SYS$LOGIN:FTNCHEK.INI exists <==="
$ Write SYS$OUTPUT "delete or rename it before running check"
$ GoTo Finish
$ EndIf
$!
$! Check for [.VARY] subdirectory and create it if it does not exist
$ If F$Search("VARY.DIR") .EQS. ""
$ Then
$ Write SYS$OUTPUT "NOTE: [.VARY] subdirectory does not exist: creating it now."
$ Create/Dir [.VARY]
$ Endif
$!
$ Write SYS$OUTPUT "================================================================"
$ Write SYS$OUTPUT "There should be no file differences reported by these tests."
$ Write SYS$OUTPUT "Output files matching master output files will be removed,"
$ Write SYS$OUTPUT "leaving any erroneous output files in the subdirectory"
$ Write SYS$OUTPUT "[.TEST.VARY] for manual examination. If you built FTNCHEK with"
$ Write SYS$OUTPUT "non-standard compilation options, there may be some differences."
$ Write SYS$OUTPUT "================================================================"
$!
$!------------------------------------------------------------------------------
$ List: Call Noadwrite "checking listing output: "
$ Filelist = "AVERAGE,BACKSLASH,CHESTNUTS,COMCLASH,COMCMP,COMPLEX,COMTEST," + -
"COMUSAGE,CORRECT,DIMS,DO_ENDDO,NAMELIST,NOBLANKS,STRINGS,UNIXINCLUDED," + -
"DECTAB,QUAD,SEQUENCE,SUBSTR,AUTOARRAY,CYCLE-EXIT,RELOPS,EMBEDDED-SPACE," + -
"ARG-ALIAS,COMMON-ALIAS,DEC-PARAMETER,IFFY,PURE-FUNCTION,PRIMES,LABELTEST," + -
"CASE,BLOCKERRORS,T208F"
$! HELP omitted as VMS prints / instead of - switches and has different defaults
$! INCLUDE omitted. VMS output is different for include files
$! ALLKEYWORDS omitted. VMS output is different for include files
$ Define FTNCHEK_F77 YES
$ M = 0
$ List1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endlist1
$ Call Checklist 'File'
$ M = M + 1
$ Goto List1
$ Endlist1: Call Noadwrite "done"
$! Repeat for expert mode
$ Expert: Call Noadwrite "checking expert-mode output: "
$ M = 0
$ Expert1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endexpert1
$ Call Checkexpert 'File'
$ M = M + 1
$ Goto Expert1
$ Endexpert1: Call Noadwrite "done"
$ Deassign FTNCHEK_F77
$!
$!------------------------------------------------------------------------------
$ Freeform: Call Noadwrite "checking free-form output: "
$ Filelist = "MODEL,BLOCKCHECK"
$ Define FTNCHEK_F90 YES
$ Define FTNCHEK_SOURCE "free"
$ M = 0
$ Freeform1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endfreeform1
$ Call Checkfreeform 'File'
$ M = M + 1
$ Goto Freeform1
$ Endfreeform1: Call Noadwrite "done"
$ Deassign FTNCHEK_F90
$ Deassign FTNCHEK_SOURCE
$!
$!------------------------------------------------------------------------------
$ Standard: Call Noadwrite "checking standard-compliance warnings: "
$ Filelist = "IOKEYWORDS,F95DELETED"
$ M = 0
$ Standard1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endstandard1
$ Call Check 'File' FC0 "-nof77 -nof90 -nof95"
$ Call Check 'File' FC1 " -f77 -nof90 -nof95"
$ Call Check 'File' FC2 "-nof77 -f90 -nof95"
$ Call Check 'File' FC3 "-nof77 -nof90 -f95"
$ M = M + 1
$ Goto Standard1
$ Endstandard1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Size: Call Noadwrite "checking size and type mismatch: "
$ Filelist = "ASSIGN,WORDSIZE,MIXED-EQUIV"
$ M = 0
$ Size1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endsize1
$ Call Check 'File' FC1 "-notrun -noport -nof77 -lis"
$ Call Check 'File' FC2 "-notrun -noport -f77"
$ Call Check 'File' FC3 "-notrun -port -nof77"
$ Call Check 'File' FC4 "-notrun -port -f77"
$ Call Check 'File' FC5 " -trun -noport -nof77"
$ Call Check 'File' FC6 " -trun -noport -f77"
$ Call Check 'File' FC7 " -trun -port -nof77"
$ Call Check 'File' FC8 " -trun -port -f77"
$ Call Check 'File' FCA " -trun -port -nof77 -word=2"
$ Call Check 'File' FCB " -trun -port -nof77 -word=4"
$ Call Check 'File' FCC " -trun -port -nof77 -word=8"
$ Call Check 'File' FCD " -trun -noport -nof77 -word=2"
$ Call Check 'File' FCE " -trun -noport -nof77 -word=4"
$ Call Check 'File' FCF " -trun -noport -nof77 -word=8"
$ M = M + 1
$ Goto Size1
$ Endsize1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Args: Call Noadwrite "checking -args setting: "
$ Filelist = "01,02,03,04,05,06,07,08,09,10,11,12,13,14,15"
$ M = 0
$ Args1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endargs1
$ N = 0
$ Args2: Call Check "ARGS''File'" "FC''N'" "-args=''N'"
$ N = N + 1
$ If N .LT. 4 Then Goto Args2
$ M = M + 1
$ Goto Args1
$ Endargs1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Array: Call Noadwrite "checking -array setting: "
$ Filelist = "ARRAYCLASH"
$ M = 0
$ Array1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endarray1
$ N = 0
$ Array2: Call Check 'File' "FC''N'" "-array=''N' -port"
$ N = N + 1
$ If N .LT. 4 Then Goto Array2
$ M = M + 1
$ Goto Array1
$ Endarray1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Common: Call Noadwrite "checking -common setting: "
$ Filelist = "COMCMP,COMUSAGE"
$ M = 0
$ Common1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endcommon1
$ N = 0
$ Common2: Call Check 'File' "FC''N'" "-common=''N' -nof77"
$ N = N + 1
$ If N .LT. 4 Then Goto Common2
$ M = M + 1
$ Goto Common1
$ Endcommon1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Intrinsic: Call Noadwrite "checking -intrinsic setting: "
$ Filelist = "INTRINSTEST"
$ M = 0
$ Intrinsic1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endintrinsic1
$ Call Check 'File' FC0 "-intrinsic=none"
$ Call Check 'File' FC1 "-intrinsic=none,extra"
$ Call Check 'File' FC2 "-intrinsic=none,unix"
$ Call Check 'File' FC3 "-intrinsic=none,vms"
$ Call Check 'File' FC4 "-intrinsic=no-rand-no-arg,no-vms,unix"
$ Call Check 'File' FC5 "-intrinsic=no-rand-one-arg,no-vms,unix"
$ Call Check 'File' FC6 "-intrinsic=no-iargc-no-arg,no-vms,unix"
$ Call Check 'File' FC7 "-intrinsic=no-iargc-one-arg,no-vms,unix"
$ Call Check 'File' FC8 "-intrinsic=all"
$ M = M + 1
$ Goto Intrinsic1
$ Endintrinsic1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Output: Call Noadwrite "checking -output setting: "
$ Call Check AVERAGE FC2 "-symt -list -port -out=average.out"
$ Rename AVERAGE.OUT [.VARY]
$ Call Compare AVERAGE.OUT ".f"
$ Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Usage: Call Noadwrite "checking -usage setting: "
$ Filelist = "USAGE"
$ M = 0
$ Usage1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endusage1
$ Call Check 'File' FC0 "-usage=none"
$ Call Check 'File' FC1 "-usage=none,com-var-uninitialized,var-uninitialized"
$ Call Check 'File' FC2 "-usage=none,com-block-unused,com-var-set-unused,com-var-unused,ext-unused,var-set-unused,var-unused"
$ Call Check 'File' FC3 "-usage=all"
$ M = M + 1
$ Goto Usage1
$ Endusage1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Project: Call Noadwrite "checking project files: "
$ Rename CORRECT.F CORREC.;9
$ Call Doftnchek "-project correc.;9" "[.VARY]CORRECT.FC1"
$ Rename CORREC.;9 CORRECT.F
$ Call Doedit [.VARY]CORRECT.FC1 correc.prj correct.prj
$ Call Doftnchek "CORREC.PRJ;1" "[.VARY]CORRECT.PCL"
$ Rename CORREC.PRJ [.VARY]CORRECT.PRJ
$ Call Doedit [.VARY]CORRECT.PCL correc.prj;1 correct.prj
$ Call Compare CORRECT.FC1 ".f"
$ Call Compare CORRECT.PRJ ".f"
$ Call Compare CORRECT.PCL ".f"
$ Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Rc: Call Noadwrite "checking reading rc file: "
$ Open/Write TMP FTNCHEK.INI
$ Write TMP "f77=all"
$ Write TMP "symtab"
$ Close TMP
$ Rename DO_ENDDO.F DO_ENDD.;9
$ Call Doftnchek "-f77=no-long-names,no-name-underscore do_endd.;9" [.VARY]RC.FCL
$ Rename DO_ENDD.;9 DO_ENDDO.F
$ Call Doedit [.VARY]RC.FCL .;9 o.f
$ Call Compare RC.FCL ".f"
$ Delete/Noconfirm FTNCHEK.INI;
$ Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Wildcard: Call Noadwrite "check interpreting wildcards: "
$ Call Doftnchek "-port=mixed* -port=help" "[.VARY]WILDCARD.FC1"
$ Call Doedit [.VARY]WILDCARD.FC1 "/port" "-port"
$ Call Compare WILDCARD.FC1 ".f"
$ Call Doftnchek "-usage=no-*var* -usage=help" "[.VARY]WILDCARD.FC2"
$ Call Doedit [.VARY]WILDCARD.FC2 "/usage" "-usage"
$ Call Compare WILDCARD.FC2 ".f"
$ Call Doftnchek "-usage=no-var* -usage=help" "[.VARY]WILDCARD.FC3"
$ Call Doedit [.VARY]WILDCARD.FC3 "/usage" "-usage"
$ Call Compare WILDCARD.FC3 ".f"
$ Call Doftnchek "-f77=*array*,format* -f77=help" "[.VARY]WILDCARD.FC4"
$ Call Doedit [.VARY]WILDCARD.FC4 "/f77" "-f77"
$ Call Compare WILDCARD.FC4 ".f"
$ Call Doftnchek "-pretty=*ugly* -pretty=help" "[.VARY]WILDCARD.FC5"
$ Call Doedit [.VARY]WILDCARD.FC5 "/pretty" "-pretty"
$ Call Compare WILDCARD.FC5 ".f"
$ Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Makedcls: Call Noadwrite "checking -makedcls setting: "
$ Filelist = "BUILTIN,DCLTEST,DIMS,NAMELIST,PARAMS,T208A,T208B,T208C,T208D," + -
"T208E,T208F,T208G,T208H,T208I,T208J,T208K,T208L,T208M,T208N,T208O,T208P," + -
"T208Q,T208R,T208S,T208T,T208U,T208V,T208W,T208X"
$ M = 0
$ Makedcls1: File = F$element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endmakedcls1
$ Tmpfil = F$Extract ( 0, F$Length(File)-1, File )
$ Rename 'File'.F 'Tmpfil'.;9
$ N = 0
$ P = 1
$ Makedcls2: Call Doftnchek "-nocheck -makedcls=''P' ''Tmpfil'.;9" NLA0:
$ If F$Search("''Tmpfil'.DCL") .NES. ""
$ Then
$ Rename 'Tmpfil'.DCL [.VARY]'File'.DC'N'
$ Open/Read TMP '[.VARY]'File'.DC'N'
$ Read/End_Of_File=Dclsempty TMP Line
$ Close TMP
$ Call Compare 'File'.DC'N' ".f"
$ Goto Makedclsnext
$ Dclsempty: WRITE SYS$OUTPUT "Empty declarations file "+ F$Search("[.VARY]''Cffil'") + " should have been deleted"
$ Endif
$ Makedclsnext: P = P + P
$ N = N + 1
$ If N .LT. 10 Then Goto Makedcls2
$ Rename 'Tmpfil'.;9 'File'.F
$ M = M + 1
$ Goto Makedcls1
$ Endmakedcls1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$ Vcg: Call Noadwrite "checking -vcg setting: "
$ filelist = "COMCMP,COMUSAGE"
$ M = 0
$ Vcg1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Endvcg1
$ Tmpfil = F$Extract ( 0, F$Length(File)-1, File )
$ Rename 'File'.f 'Tmpfil'.;9
$ Call Doftnchek "-vcg ''Tmpfil'.;9" NLA0:
$ Rename 'Tmpfil'.;9 'File'.f
$ Rename 'Tmpfil'.VCG [.VARY]'File'.VCG
$ Call Compare 'File'.VCG ".f"
$ M = M + 1
$ Goto Vcg1
$ Endvcg1: Call Noadwrite "done"
$!
$!------------------------------------------------------------------------------
$! Check for GAWK - needed for dcl2inc processing
$ Dcl2inc: Filelist = "T208X"
$ Assign F1.TMP SYS$OUTPUT
$ Show Symbol GAWK
$ Deassign SYS$OUTPUT
$ Open/Read TMP F1.TMP
$ Read TMP Line
$ Close TMP
$ Delete/Noconfirm F1.TMP;
$ If Line .NES. "%DCL-W-UNDSYM, undefined symbol - check validity and spelling"
$ Then
$ Call Noadwrite "checking dcl2inc processing: "
$ M = 0
$ Dcl2inc1: File = F$Element(M,Comma,Filelist)
$ If File .EQS. Comma Then Goto Enddcl2inc1
$ Tmpfil = F$Extract ( 0, F$Length(File)-1, File )
$ Rename 'File'.f 'Tmpfil'.;9
$ Call Doftnchek "-nocheck -makedcl=1 ''Tmpfil'.;9" NLA0:
$ Rename 'Tmpfil'.;9 'File'.f
$ Assign/User 'File'.ERR SYS$ERROR
$ Assign/User [.VARY]'File'.MAK SYS$OUTPUT
$ Gawk -f [-]DCL2INC.AWK 'Tmpfil'.DCL
$ Deassign SYS$OUTPUT
$ Rename 'Tmpfil'.DCL [.VARY]'File'.DCL
$ Call Compare 'File'.DCL ".f"
$ Rename 'Tmpfil'.DCN [.VARY]'File'.DCN
$ Call Compare 'File'.DCN ".f"
$ Call Doedit [.VARY]'File'.MAK 'Tmpfil'. 'File'.
$ Call Compare 'File'.MAK ".f"
$ Rename 'File'.ERR [.VARY]
$ Call Doedit [.VARY]'File'.ERR 'Tmpfil'. 'File'.
$ Call Compare 'File'.ERR ".f"
$ Dcl2inc2: File = F$Search("*.INC")
$ If File .EQS. "" Then Goto Enddcl2inc2
$ Cffil = F$Parse(File,,,"NAME") + ".INC"
$ Rename 'Cffil' [.VARY]
$ Call Compare 'Cffil' ".f"
$ Goto Dcl2inc2
$ Enddcl2inc2: M = M + 1
$ Goto Dcl2inc1
$ Enddcl2inc1: Call Noadwrite "done"
$ Else
$ Write SYS$OUTPUT "WARNING ===> dcl2inc processing not checked <===
$ Write SYS$OUTPUT "Unable to locate GAWK on this system"
$ Endif
$!
$ Finish:
$ Set Default 'Startdir'
$ If Setverify Then Set Verify
$ EXIT
|