Annotation of embedaddon/curl/packages/vms/config_h.com, revision 1.1
1.1 ! misho 1: $! File: config_h.com
! 2: $!
! 3: $! $Id: config_h.com,v 1.1.1.1 2012/12/02 19:25:21 wb8tyw Exp $
! 4: $!
! 5: $! This procedure attempts to figure out how to build a config.h file
! 6: $! for the current project.
! 7: $!
! 8: $! P1 specifies the config.h.in file or equivalent. If it is not specified
! 9: $! then this procedure will search for several common names of the file.
! 10: $!
! 11: $! The CONFIGURE shell script will be examined for hints and a few symbols
! 12: $! but most of the tests will not produce valid results on OpenVMS. Some
! 13: $! will produce false positives and some will produce false negatives.
! 14: $!
! 15: $! It is easier to just read the config.h_in file and make up tests based
! 16: $! on what is in it!
! 17: $!
! 18: $! This file will create an empty config_vms.h file if one does not exist.
! 19: $! The config_vms.h is intended for manual edits to handle things that
! 20: $! this procedure can not.
! 21: $!
! 22: $! The config_vms.h will be invoked by the resulting config.h file.
! 23: $!
! 24: $! This procedure knows about the DEC C RTL on the system it is on.
! 25: $! Future versions may be handle the GNV, the OpenVMS porting library,
! 26: $! and others.
! 27: $!
! 28: $! This procedure may not guess the options correctly for all architectures,
! 29: $! and is a work in progress.
! 30: $!
! 31: $! Copyright 2011 - 2020, John Malmberg
! 32: $!
! 33: $! Permission to use, copy, modify, and/or distribute this software for any
! 34: $! purpose with or without fee is hereby granted, provided that the above
! 35: $! copyright notice and this permission notice appear in all copies.
! 36: $!
! 37: $! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
! 38: $! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
! 39: $! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
! 40: $! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
! 41: $! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
! 42: $! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
! 43: $! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
! 44: $!
! 45: $! 15-Jan-2001 J. Malmberg Original
! 46: $! 29-Apr-2001 J. Malmberg Also look for config.*in* in a [.include]
! 47: $! subdirectory
! 48: $! 30-Apr-2001 J. Malmberg Update for SAMBA checks
! 49: $! 09-Apr-2005 J. Malmberg Update for RSYNC and large file.
! 50: $! 29-Sep-2011 J. Malmberg Update for Bash 4.2
! 51: $! 01-Mar-2012 J. Malmberg Warn about getcwd(0,0)
! 52: $! 21-Dec-2012 J. Malmberg Update for gawk
! 53: $! 29-Dec-2012 J. Malmberg Update for curl
! 54: $!============================================================================
! 55: $!
! 56: $ss_normal = 1
! 57: $ss_abort = 44
! 58: $ss_control_y = 1556
! 59: $status = ss_normal
! 60: $on control_y then goto control_y
! 61: $on warning then goto general_error
! 62: $!on warning then set ver
! 63: $!
! 64: $! Some information for writing timestamps to created files
! 65: $!----------------------------------------------------------
! 66: $my_proc = f$environment("PROCEDURE")
! 67: $my_proc_file = f$parse(my_proc,,,"NAME") + f$parse(my_proc,,,"TYPE")
! 68: $tab[0,8] = 9
! 69: $datetime = f$element(0,".",f$cvtime(,"ABSOLUTE","DATETIME"))
! 70: $username = f$edit(f$getjpi("","USERNAME"),"TRIM")
! 71: $!
! 72: $pid = f$getjpi("","PID")
! 73: $tfile1 = "SYS$SCRATCH:config_h_temp1_''pid'.TEMP"
! 74: $dchfile = "SYS$SCRATCH:config_h_decc_''pid'.TEMP"
! 75: $starhfile = "SYS$SCRATCH:config_h_starlet_''pid'.TEMP"
! 76: $configure_script = "SYS$SCRATCH:configure_script_''pid'.TEMP"
! 77: $!
! 78: $! Get the system type
! 79: $!----------------------
! 80: $arch_type = f$getsyi("arch_type")
! 81: $!
! 82: $! Does config_vms.h exist?
! 83: $!-------------------------
! 84: $update_config_vms = 0
! 85: $file = f$search("sys$disk:[]config_vms.h")
! 86: $if file .nes. ""
! 87: $then
! 88: $ write sys$output "Found existing custom file ''file'."
! 89: $else
! 90: $ update_config_vms = 1
! 91: $ write sys$output "Creating new sys$disk:[]config_vms.h for you."
! 92: $ gosub write_config_vms
! 93: $endif
! 94: $!
! 95: $!
! 96: $! On some platforms, DCL search has problems with searching a file
! 97: $! on a NFS mounted volume. So copy it to sys$scratch:
! 98: $!
! 99: $if f$search(configure_script) .nes. "" then delete 'configure_script';*
! 100: $copy sys$disk:[]configure 'configure_script'
! 101: $!
! 102: $ssl_header_dir = "OPENSSL:"
! 103: $if f$trnlnm("OPENSSL") .eqs. ""
! 104: $then
! 105: $ ssl_header_dir = "SSL$INCLUDE:"
! 106: $endif
! 107: $!
! 108: $!
! 109: $! Write out the header
! 110: $!----------------------
! 111: $gosub write_config_h_header
! 112: $!
! 113: $!
! 114: $!
! 115: $! config.h.in could have at least five different names depending
! 116: $! on how it was transferred to OpenVMS
! 117: $!------------------------------------------------------------------
! 118: $if p1 .nes. ""
! 119: $then
! 120: $ cfile = p1
! 121: $else
! 122: $ cfile = f$search("sys$disk:[]config.h.in")
! 123: $ if cfile .eqs. ""
! 124: $ then
! 125: $ cfile = f$search("sys$disk:[]config.h_in")
! 126: $ if cfile .eqs. ""
! 127: $ then
! 128: $ cfile = f$search("sys$disk:[]configh.in")
! 129: $ if cfile .eqs. ""
! 130: $ then
! 131: $ cfile = f$search("sys$disk:[]config__2eh.in")
! 132: $ if cfile .eqs. ""
! 133: $ then
! 134: $ cfile = f$search("sys$disk:[]config.h__2ein")
! 135: $ endif
! 136: $ endif
! 137: $ endif
! 138: $ endif
! 139: $endif
! 140: $if f$trnlnm("PRJ_INCLUDE") .nes. ""
! 141: $then
! 142: $ cfile = f$search("PRJ_INCLUDE:config.h.in")
! 143: $ if cfile .eqs. ""
! 144: $ then
! 145: $ cfile = f$search("PRJ_INCLUDE:config.h_in")
! 146: $ if cfile .eqs. ""
! 147: $ then
! 148: $ cfile = f$search("PRJ_INCLUDE:config__2eh.in")
! 149: $ if cfile .eqs. ""
! 150: $ then
! 151: $ cfile = f$search("PRJ_INCLUDE:config__2eh.in")
! 152: $ if cfile .eqs. ""
! 153: $ then
! 154: $ cfile = f$search("PRJ_INCLUDE:config.h__2ein")
! 155: $ endif
! 156: $ endif
! 157: $ endif
! 158: $ endif
! 159: $endif
! 160: $if cfile .eqs. ""
! 161: $then
! 162: $ write sys$output "Can not find sys$disk:config.h.in"
! 163: $ line_out = "Looked for config.h.in, config.h_in, configh.in, "
! 164: $ line_out = line_out + "config__2eh.in, config.h__2ein"
! 165: $ write/symbol sys$output line_out
! 166: $ if f$trnlnm("PRJ_INCLUDE") .nes. ""
! 167: $ then
! 168: $ write sys$output "Also looked in PRJ_INCLUDE: for these files."
! 169: $ endif
! 170: $!
! 171: $ write tf ""
! 172: $ write tf -
! 173: " /* Could not find sys$disk:config.h.in */"
! 174: $ write tf -
! 175: " /* Looked also for config.h_in, configh.in, config__2eh.in, */"
! 176: $ write tf -
! 177: " /* config.h__2ein */"
! 178: $ if f$trnlnm("PRJ_INCLUDE") .nes. ""
! 179: $ then
! 180: $ write tf -
! 181: " /* Also looked in PRJ_INCLUDE: for these files. */"
! 182: $ endif
! 183: $ write tf -
! 184: "/*--------------------------------------------------------------*/
! 185: $ write tf ""
! 186: $ goto write_tail
! 187: $endif
! 188: $!
! 189: $!
! 190: $! Locate the DECC libraries in use
! 191: $!-----------------------------------
! 192: $decc_rtldef = f$parse("decc$rtldef","sys$library:.tlb;0")
! 193: $decc_starletdef = f$parse("sys$starlet_c","sys$library:.tlb;0")
! 194: $decc_shr = f$parse("decc$shr","sys$share:.exe;0")
! 195: $!
! 196: $! Dump the DECC header names into a file
! 197: $!----------------------------------------
! 198: $if f$search(dchfile) .nes. "" then delete 'dchfile';*
! 199: $if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 200: $define/user sys$output 'tfile1'
! 201: $library/list 'decc_rtldef'
! 202: $open/read/error=rtldef_loop1_end tf1 'tfile1'
! 203: $open/write/error=rtldef_loop1_end tf2 'dchfile'
! 204: $rtldef_loop1:
! 205: $ read/end=rtldef_loop1_end tf1 line_in
! 206: $ line_in = f$edit(line_in,"TRIM,COMPRESS")
! 207: $ key1 = f$element(0," ",line_in)
! 208: $ key2 = f$element(1," ",line_in)
! 209: $ if key1 .eqs. " " .or. key1 .eqs. "" then goto rtldef_loop1
! 210: $ if key2 .nes. " " .and. key2 .nes. "" then goto rtldef_loop1
! 211: $ write tf2 "|",key1,"|"
! 212: $ goto rtldef_loop1
! 213: $rtldef_loop1_end:
! 214: $if f$trnlnm("tf1","lnm$process",,"SUPERVISOR") .nes. "" then close tf1
! 215: $if f$trnlnm("tf2","lnm$process",,"SUPERVISOR") .nes. "" then close tf2
! 216: $if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 217: $!
! 218: $! Dump the STARLET header names into a file
! 219: $!----------------------------------------
! 220: $if f$search(starhfile) .nes. "" then delete 'starhfile';*
! 221: $if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 222: $define/user sys$output 'tfile1'
! 223: $library/list 'decc_starletdef'
! 224: $open/read/error=stardef_loop1_end tf1 'tfile1'
! 225: $open/write/error=stardef_loop1_end tf2 'starhfile'
! 226: $stardef_loop1:
! 227: $ read/end=stardef_loop1_end tf1 line_in
! 228: $ line_in = f$edit(line_in,"TRIM,COMPRESS")
! 229: $ key1 = f$element(0," ",line_in)
! 230: $ key2 = f$element(1," ",line_in)
! 231: $ if key1 .eqs. " " .or. key1 .eqs. "" then goto stardef_loop1
! 232: $ if key2 .nes. " " .and. key2 .nes. "" then goto stardef_loop1
! 233: $ write tf2 "|",key1,"|"
! 234: $ goto stardef_loop1
! 235: $stardef_loop1_end:
! 236: $if f$trnlnm("tf1","lnm$process",,"SUPERVISOR") .nes. "" then close tf1
! 237: $if f$trnlnm("tf2","lnm$process",,"SUPERVISOR") .nes. "" then close tf2
! 238: $if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 239: $!
! 240: $!
! 241: $! Now calculate what should be in the file from reading
! 242: $! config.h.in and CONFIGURE.
! 243: $!---------------------------------------------------------------
! 244: $open/read inf 'cfile'
! 245: $do_comment = 0
! 246: $if_block = 0
! 247: $cfgh_in_loop1:
! 248: $!set nover
! 249: $ read/end=cfgh_in_loop1_end inf line_in
! 250: $ xline = f$edit(line_in,"TRIM,COMPRESS")
! 251: $!
! 252: $! Blank line handling
! 253: $!---------------------
! 254: $ if xline .eqs. ""
! 255: $ then
! 256: $ write tf ""
! 257: $ goto cfgh_in_loop1
! 258: $ endif
! 259: $ xlen = f$length(xline)
! 260: $ key = f$extract(0,2,xline)
! 261: $!
! 262: $! deal with comments by copying exactly
! 263: $!-----------------------------------------
! 264: $ if (do_comment .eq. 1) .or. (key .eqs. "/*")
! 265: $ then
! 266: $ do_comment = 1
! 267: $ write tf line_in
! 268: $ key = f$extract(xlen - 2, 2, xline)
! 269: $ if key .eqs. "*/" then do_comment = 0
! 270: $ goto cfgh_in_loop1
! 271: $ endif
! 272: $!
! 273: $! Some quick parsing
! 274: $!----------------------
! 275: $ keyif = f$extract(0,3,xline)
! 276: $ key1 = f$element(0," ",xline)
! 277: $ key2 = f$element(1," ",xline)
! 278: $ key2a = f$element(0,"_",key2)
! 279: $ key2b = f$element(1,"_",key2)
! 280: $ key2_len = f$length(key2)
! 281: $ key2_h = f$extract(key2_len - 2, 2, key2)
! 282: $ key2_t = f$extract(key2_len - 5, 5, key2)
! 283: $ if key2_t .eqs. "_TYPE" then key2_h = "_T"
! 284: $ key64 = 0
! 285: $ if f$locate("64", xline) .lt. xlen then key64 = 1
! 286: $!
! 287: $!write sys$output "xline = ''xline'"
! 288: $!
! 289: $! Comment out this section of the ifblock
! 290: $!-----------------------------------------
! 291: $ if if_block .ge. 3
! 292: $ then
! 293: $ write tf "/* ", xline, " */"
! 294: $ if keyif .eqs. "#en" then if_block = 0
! 295: $ goto cfgh_in_loop1
! 296: $ endif
! 297: $!
! 298: $! Handle the end of an ifblock
! 299: $!-------------------------------
! 300: $ if keyif .eqs. "#en"
! 301: $ then
! 302: $ write tf xline
! 303: $ if_block = 0
! 304: $ goto cfgh_in_loop1
! 305: $ endif
! 306: $!
! 307: $ if key1 .eqs. "#ifndef"
! 308: $ then
! 309: $! Manual check for _ALL_SOURCE on AIX error
! 310: $!-----------------------------------------------
! 311: $ if key2 .eqs. "_ALL_SOURCE"
! 312: $ then
! 313: $ write tf "/* ", xline, " */"
! 314: $!
! 315: $! Ignore the rest of the block
! 316: $!--------------------------------------
! 317: $ if_block = 3
! 318: $ goto cfgh_in_loop1
! 319: $ endif
! 320: $ endif
! 321: $!
! 322: $!
! 323: $! Default action for an #if/#else/#endif
! 324: $!------------------------------------------
! 325: $ if keyif .eqs. "#if" .or. keyif .eqs. "#el"
! 326: $ then
! 327: $ if_block = 1
! 328: $ write tf xline
! 329: $ goto cfgh_in_loop1
! 330: $ endif
! 331: $!
! 332: $!
! 333: $! Process "normal?" stuff
! 334: $!---------------------------
! 335: $ if key1 .eqs. "#undef"
! 336: $ then
! 337: $ key2c = f$element(2, "_", key2)
! 338: $ if (key2c .eqs. "_") .or. (key2c .eqs. "H") then key2c = ""
! 339: $ key2d = f$element(3, "_", key2)
! 340: $ if (key2d .eqs. "_") .or. (key2d .eqs. "H") then key2d = ""
! 341: $ key2e = f$element(4, "_", key2)
! 342: $ if (key2e .eqs. "_") .or. (key2e .eqs. "H") then key2e = ""
! 343: $ if key2d .eqs. "T"
! 344: $ then
! 345: $ if key2e .eqs. "TYPE"
! 346: $ then
! 347: $ key2_h = "_T"
! 348: $ key2d = ""
! 349: $ endif
! 350: $ endif
! 351: $!
! 352: $ double_under = 0
! 353: $!
! 354: $! Process FCNTL directives
! 355: $!-------------------------------------
! 356: $ if (key2b .eqs. "FCNTL") .and. (key2c .eqs. "O") .and. -
! 357: (key2d .eqs. "NONBLOCK")
! 358: $ then
! 359: $ write tf "#ifndef ''key2'"
! 360: $ write tf "#define ''key2' 1"
! 361: $ write tf "#endif"
! 362: $ goto cfgh_in_loop1
! 363: $ endif
! 364: $!
! 365: $! Process GETADDRINFO directives
! 366: $!-------------------------------------
! 367: $ if key2 .eqs. "GETADDRINFO_THREADSAFE"
! 368: $ then
! 369: $ write tf "#ifndef ''key2'"
! 370: $ write tf "#define ''key2' 1"
! 371: $ write tf "#endif"
! 372: $ goto cfgh_in_loop1
! 373: $ endif
! 374: $!
! 375: $! Process IOCTL directives
! 376: $!-------------------------------------
! 377: $ if (key2b .eqs. "IOCTL") .and. (key2c .nes. "")
! 378: $ then
! 379: $ if (key2c .eqs. "FIONBIO") .or. (key2c .eqs. "SIOCGIFADDR")
! 380: $ then
! 381: $ write tf "#ifndef ''key2'"
! 382: $ write tf "#define ''key2' 1"
! 383: $ write tf "#endif"
! 384: $ goto cfgh_in_loop1
! 385: $ endif
! 386: $ endif
! 387: $!
! 388: $!
! 389: $! Manual check for LL on
! 390: $!-----------------------------------------------
! 391: $ if key2 .eqs. "LL"
! 392: $ then
! 393: $ write tf "#ifndef __VAX
! 394: $ write tf "#define HAVE_''key2' 1"
! 395: $ write tf "#endif"
! 396: $ goto cfgh_in_loop1
! 397: $ endif
! 398: $!
! 399: $ if key2 .eqs. "bool_t"
! 400: $ then
! 401: $ write tf "#ifndef ''key2'"
! 402: $ write tf "#define ''key2' short"
! 403: $ write tf "#endif"
! 404: $ goto cfgh_in_loop1
! 405: $ endif
! 406: $!
! 407: $ if key2 .eqs. "bits16_t"
! 408: $ then
! 409: $ write tf "#ifndef ''key2'"
! 410: $ write tf "#define ''key2' short"
! 411: $ write tf "#endif"
! 412: $ goto cfgh_in_loop1
! 413: $ endif
! 414: $!
! 415: $ if key2 .eqs. "u_bits16_t"
! 416: $ then
! 417: $ write tf "#ifndef ''key2'"
! 418: $ write tf "#define ''key2' unsigned short"
! 419: $ write tf "#endif"
! 420: $ goto cfgh_in_loop1
! 421: $ endif
! 422: $!
! 423: $ if key2 .eqs. "bits32_t"
! 424: $ then
! 425: $ write tf "#ifndef ''key2'"
! 426: $ write tf "#define ''key2' int"
! 427: $ write tf "#endif"
! 428: $ goto cfgh_in_loop1
! 429: $ endif
! 430: $!
! 431: $ if key2 .eqs. "u_bits32_t"
! 432: $ then
! 433: $ write tf "#ifndef ''key2'"
! 434: $ write tf "#define ''key2' unsigned int"
! 435: $ write tf "#endif"
! 436: $ goto cfgh_in_loop1
! 437: $ endif
! 438: $!
! 439: $ if key2 .eqs. "intmax_t"
! 440: $ then
! 441: $ write tf "#ifndef ''key2'"
! 442: $ write tf "#ifdef __VAX"
! 443: $ write tf "#define ''key2' long"
! 444: $ write tf "#else"
! 445: $ write tf "#define ''key2' long long"
! 446: $ write tf "#endif"
! 447: $ write tf "#endif"
! 448: $ goto cfgh_in_loop1
! 449: $ endif
! 450: $!
! 451: $ if key2 .eqs. "uintmax_t"
! 452: $ then
! 453: $ write tf "#ifndef ''key2'"
! 454: $ write tf "#ifdef __VAX"
! 455: $ write tf "#define ''key2' unsigned long"
! 456: $ write tf "#else"
! 457: $ write tf "#define ''key2' unsigned long long"
! 458: $ write tf "#endif"
! 459: $ write tf "#endif"
! 460: $ goto cfgh_in_loop1
! 461: $ endif
! 462: $!
! 463: $ if key2 .eqs. "socklen_t"
! 464: $ then
! 465: $ write tf "#ifndef ''key2'"
! 466: $ write tf "#define ''key2' int"
! 467: $ write tf "#endif"
! 468: $ goto cfgh_in_loop1
! 469: $ endif
! 470: $!
! 471: $ if key2 .eqs. "GETGROUPS_T"
! 472: $ then
! 473: $ write tf "#ifndef ''key2'"
! 474: $ write tf "#define ''key2' gid_t"
! 475: $ write tf "#endif"
! 476: $ goto cfgh_in_loop1
! 477: $ endif
! 478: $!
! 479: $ if key2 .eqs. "HAVE_DECL_SYS_SIGLIST"
! 480: $ then
! 481: $ write tf "#ifndef ''key2'"
! 482: $ write tf "#define ''key2' 0"
! 483: $ write tf "#endif"
! 484: $ goto cfgh_in_loop1
! 485: $ endif
! 486: $!
! 487: $ if key2 .eqs. "HAVE_SYS_ERRLIST"
! 488: $ then
! 489: $ write tf "#ifndef ''key2'"
! 490: $ write tf "#define ''key2' 1"
! 491: $ write tf "#endif"
! 492: $ goto cfgh_in_loop1
! 493: $ endif
! 494: $!
! 495: $ if key2 .eqs. "HAVE_STRUCT_DIRENT_D_INO"
! 496: $ then
! 497: $ write tf "#ifndef ''key2'"
! 498: $ write tf "#define ''key2' 1"
! 499: $ write tf "#endif"
! 500: $ goto cfgh_in_loop1
! 501: $ endif
! 502: $!
! 503: $ if key2 .eqs. "HAVE_STRUCT_TIMEVAL"
! 504: $ then
! 505: $ write tf "#ifndef ''key2'"
! 506: $ write tf "#define ''key2' 1"
! 507: $ write tf "#endif"
! 508: $ goto cfgh_in_loop1
! 509: $ endif
! 510: $!
! 511: $! ! The header files have this information, however
! 512: $! ! The ioctl() call only works on sockets.
! 513: $! if key2 .eqs. "FIONREAD_IN_SYS_IOCTL"
! 514: $! then
! 515: $! write tf "#ifndef ''key2'"
! 516: $! write tf "#define ''key2' 1"
! 517: $! write tf "#endif"
! 518: $! goto cfgh_in_loop1
! 519: $! endif
! 520: $!
! 521: $! ! The header files have this information, however
! 522: $! ! The ioctl() call only works on sockets.
! 523: $! if key2 .eqs. "GWINSZ_IN_SYS_IOCTL"
! 524: $! then
! 525: $! write tf "#ifndef ''key2'"
! 526: $! write tf "#define ''key2' 1"
! 527: $! write tf "#endif"
! 528: $! goto cfgh_in_loop1
! 529: $! endif
! 530: $!
! 531: $! ! The header files have this information, however
! 532: $! ! The ioctl() call only works on sockets.
! 533: $! if key2 .eqs. "STRUCT_WINSIZE_IN_SYS_IOCTL"
! 534: $! then
! 535: $! write tf "#ifndef ''key2'"
! 536: $! write tf "#define ''key2' 0"
! 537: $! write tf "#endif"
! 538: $! goto cfgh_in_loop1
! 539: $! endif
! 540: $!
! 541: $ if key2 .eqs. "HAVE_STRUCT_TM_TM_ZONE"
! 542: $ then
! 543: $ write tf "#ifndef ''key2'"
! 544: $ write tf "#define ''key2' 1"
! 545: $ write tf "#endif"
! 546: $ goto cfgh_in_loop1
! 547: $ endif
! 548: $!
! 549: $ if key2 .eqs. "HAVE_TM_ZONE"
! 550: $ then
! 551: $ write tf "#ifndef ''key2'"
! 552: $ write tf "#define ''key2' 1"
! 553: $ write tf "#endif"
! 554: $ goto cfgh_in_loop1
! 555: $ endif
! 556: $!
! 557: $ if key2 .eqs. "HAVE_TIMEVAL"
! 558: $ then
! 559: $ write tf "#ifndef ''key2'"
! 560: $ write tf "#define ''key2' 1"
! 561: $ write tf "#endif"
! 562: $ goto cfgh_in_loop1
! 563: $ endif
! 564: $!
! 565: $ if key2 .eqs. "WEXITSTATUS_OFFSET"
! 566: $ then
! 567: $ write tf "#ifndef ''key2'"
! 568: $ write tf "#define ''key2' 2"
! 569: $ write tf "#endif"
! 570: $ goto cfgh_in_loop1
! 571: $ endif
! 572: $!
! 573: $ if key2 .eqs. "HAVE_GETPW_DECLS"
! 574: $ then
! 575: $ write tf "#ifndef ''key2'"
! 576: $ write tf "#define ''key2' 1"
! 577: $ write tf "#endif"
! 578: $ goto cfgh_in_loop1
! 579: $ endif
! 580: $!
! 581: $ if key2 .eqs. "HAVE_DECL_CONFSTR"
! 582: $ then
! 583: $ write tf "#ifndef ''key2'"
! 584: $ write tf "#define ''key2' 1"
! 585: $ write tf "#endif"
! 586: $ goto cfgh_in_loop1
! 587: $ endif
! 588: $!
! 589: $ if key2 .eqs. "HAVE_DECL_PRINTF"
! 590: $ then
! 591: $ write tf "#ifndef ''key2'"
! 592: $ write tf "#define ''key2' 1"
! 593: $ write tf "#endif"
! 594: $ goto cfgh_in_loop1
! 595: $ endif
! 596: $!
! 597: $ if key2 .eqs. "HAVE_DECL_SBRK"
! 598: $ then
! 599: $ write tf "#ifndef ''key2'"
! 600: $ write tf "#define ''key2' 1"
! 601: $ write tf "#endif"
! 602: $ goto cfgh_in_loop1
! 603: $ endif
! 604: $!
! 605: $ if key2 .eqs. "HAVE_DECL_STRSIGNAL"
! 606: $ then
! 607: $ write tf "#ifndef ''key2'"
! 608: $ write tf "#define ''key2' 0"
! 609: $ write tf "#endif"
! 610: $ goto cfgh_in_loop1
! 611: $ endif
! 612: $!
! 613: $ if key2a .eqs. "HAVE_DECL_STRTOLD"
! 614: $ then
! 615: $ write tf "#ifndef ''key2'"
! 616: $ write tf "#define ''key2' 0"
! 617: $ write tf "#endif"
! 618: $ goto cfgh_in_loop1
! 619: $ endif
! 620: $!
! 621: $ if key2 .eqs. "HAVE_DECL_STRTOIMAX"
! 622: $ then
! 623: $ write tf "#ifndef ''key2'"
! 624: $ write tf "#define ''key2' 0"
! 625: $ write tf "#endif"
! 626: $ goto cfgh_in_loop1
! 627: $ endif
! 628: $!
! 629: $ if key2 .eqs. "HAVE_DECL_STRTOL"
! 630: $ then
! 631: $ write tf "#ifndef ''key2'"
! 632: $ write tf "#define ''key2' 1"
! 633: $ write tf "#endif"
! 634: $ goto cfgh_in_loop1
! 635: $ endif
! 636: $!
! 637: $ if key2 .eqs. "HAVE_DECL_STRTOLL"
! 638: $ then
! 639: $ write tf "#ifndef ''key2'"
! 640: $ write tf "#define ''key2' 1"
! 641: $ write tf "#endif"
! 642: $ goto cfgh_in_loop1
! 643: $ endif
! 644: $!
! 645: $ if key2 .eqs. "HAVE_DECL_STRTOUL"
! 646: $ then
! 647: $ write tf "#ifndef ''key2'"
! 648: $ write tf "#define ''key2' 1"
! 649: $ write tf "#endif"
! 650: $ goto cfgh_in_loop1
! 651: $ endif
! 652: $!
! 653: $ if key2 .eqs. "HAVE_DECL_STRTOULL"
! 654: $ then
! 655: $ write tf "#ifndef ''key2'"
! 656: $ write tf "#define ''key2' 1"
! 657: $ write tf "#endif"
! 658: $ goto cfgh_in_loop1
! 659: $ endif
! 660: $!
! 661: $ if key2 .eqs. "HAVE_DECL_STRTOUMAX"
! 662: $ then
! 663: $ write tf "#ifndef ''key2'"
! 664: $ write tf "#define ''key2' 0"
! 665: $ write tf "#endif"
! 666: $ goto cfgh_in_loop1
! 667: $ endif
! 668: $!
! 669: $ if key2 .eqs. "GETPGRP_VOID"
! 670: $ then
! 671: $ write tf "#ifndef ''key2'"
! 672: $ write tf "#define ''key2' 1"
! 673: $ write tf "#endif"
! 674: $ goto cfgh_in_loop1
! 675: $ endif
! 676: $!
! 677: $ if key2 .eqs. "NAMED_PIPES_MISSING"
! 678: $ then
! 679: $ write tf "#ifndef ''key2'"
! 680: $ write tf "#define ''key2' 1"
! 681: $ write tf "#endif"
! 682: $ goto cfgh_in_loop1
! 683: $ endif
! 684: $!
! 685: $ if key2 .eqs. "OPENDIR_NOT_ROBUST"
! 686: $ then
! 687: $ write tf "#ifndef ''key2'"
! 688: $ write tf "#define ''key2' 1"
! 689: $ write tf "#endif"
! 690: $ goto cfgh_in_loop1
! 691: $ endif
! 692: $!
! 693: $ if key2 .eqs. "PGRP_PIPE"
! 694: $ then
! 695: $ write tf "#ifndef ''key2'"
! 696: $ write tf "#define ''key2' 1"
! 697: $ write tf "#endif"
! 698: $ goto cfgh_in_loop1
! 699: $ endif
! 700: $!
! 701: $ if key2 .eqs. "CAN_REDEFINE_GETENV"
! 702: $ then
! 703: $ write tf "#ifndef ''key2'"
! 704: $ write tf "#define ''key2' 1"
! 705: $ write tf "#endif"
! 706: $ goto cfgh_in_loop1
! 707: $ endif
! 708: $!
! 709: $ if key2 .eqs. "HAVE_PRINTF_A_FORMAT"
! 710: $ then
! 711: $ write tf "#ifndef ''key2'"
! 712: $ write tf "#define ''key2' 1"
! 713: $ write tf "#endif"
! 714: $ goto cfgh_in_loop1
! 715: $ endif
! 716: $!
! 717: $ if key2 .eqs. "CTYPE_NON_ASCII"
! 718: $ then
! 719: $ write tf "#ifndef ''key2'"
! 720: $ write tf "#define ''key2' 1"
! 721: $ write tf "#endif"
! 722: $ goto cfgh_in_loop1
! 723: $ endif
! 724: $!
! 725: $ if key2 .eqs. "HAVE_LANGINFO_CODESET"
! 726: $ then
! 727: $ write tf "#ifndef ''key2'"
! 728: $ write tf "#define ''key2' 0"
! 729: $ write tf "#endif"
! 730: $ goto cfgh_in_loop1
! 731: $ endif
! 732: $!
! 733: $! This wants execve() to do this automagically to pass.
! 734: $! if key2 .eqs. "HAVE_HASH_BANG_EXEC"
! 735: $! then
! 736: $! write tf "#ifndef ''key2'"
! 737: $! write tf "#define ''key2' 1"
! 738: $! write tf "#endif"
! 739: $! goto cfgh_in_loop1
! 740: $! endif
! 741: $!
! 742: $ if key2 .eqs. "ICONV_CONST"
! 743: $ then
! 744: $ write tf "#ifndef ''key2'"
! 745: $ write tf "#define ''key2'"
! 746: $ write tf "#endif"
! 747: $ goto cfgh_in_loop1
! 748: $ endif
! 749: $!
! 750: $ if key2 .eqs. "VOID_SIGHANDLER"
! 751: $ then
! 752: $ write tf "#ifndef ''key2'"
! 753: $ write tf "#define ''key2' 1"
! 754: $ write tf "#endif"
! 755: $ goto cfgh_in_loop1
! 756: $ endif
! 757: $!
! 758: $ if key2 .eqs. "HAVE_POSIX_SIGNALS"
! 759: $ then
! 760: $ write tf "#ifndef ''key2'"
! 761: $ write tf "#define ''key2' 1"
! 762: $ write tf "#endif"
! 763: $ goto cfgh_in_loop1
! 764: $ endif
! 765: $!
! 766: $ if key2 .eqs. "UNUSABLE_RT_SIGNALS"
! 767: $ then
! 768: $ write tf "#ifndef ''key2'"
! 769: $ write tf "#define ''key2' 1"
! 770: $ write tf "#endif"
! 771: $ goto cfgh_in_loop1
! 772: $ endif
! 773: $!
! 774: $ if key2a .eqs. "HAVE_DECL_FPURGE"
! 775: $ then
! 776: $ write tf "#ifndef ''key2a'"
! 777: $ write tf "#define ''key2a' 1"
! 778: $ write tf "#endif"
! 779: $ goto cfgh_in_loop1
! 780: $ endif
! 781: $!
! 782: $ if key2 .eqs. "HAVE_DECL_SETREGID"
! 783: $ then
! 784: $ write tf "#ifndef ''key2'"
! 785: $ write tf "#define ''key2' 1"
! 786: $ write tf "#endif"
! 787: $ goto cfgh_in_loop1
! 788: $ endif
! 789: $!
! 790: $ if key2 .eqs. "HAVE_POSIX_SIGSETJMP"
! 791: $ then
! 792: $ write tf "#ifndef ''key2'"
! 793: $ write tf "#define ''key2' 1"
! 794: $ write tf "#endif"
! 795: $ goto cfgh_in_loop1
! 796: $ endif
! 797: $!
! 798: $ if key2 .eqs. "HAVE_LIBDL"
! 799: $ then
! 800: $ write tf "#ifndef ''key2'"
! 801: $ write tf "#define ''key2' 1"
! 802: $ write tf "#endif"
! 803: $ goto cfgh_in_loop1
! 804: $ endif
! 805: $!
! 806: $ if key2b .eqs. "RAND" .and. key2c .nes. "" .and. key2d .eqs. ""
! 807: $ then
! 808: $ if (key2c .eqs. "EGD") .or. -
! 809: (key2c .eqs. "STATUS") .or. -
! 810: (key2c .eqs. "SCREEN")
! 811: $ then
! 812: $ if f$search("''ssl_header_dir'rand.h") .nes. ""
! 813: $ then
! 814: $ write tf "#ifndef ''key2'"
! 815: $ write tf "#define ''key2' 1"
! 816: $ write tf "#endif"
! 817: $ else
! 818: $ write tf "/* #undef ''key2' */"
! 819: $ endif
! 820: $ endif
! 821: $ endif
! 822: $!
! 823: $ if key2 .eqs. "STRCOLL_BROKEN"
! 824: $ then
! 825: $ write tf "#ifndef ''key2'"
! 826: $ write tf "#define ''key2' 1"
! 827: $ write tf "#endif"
! 828: $ goto cfgh_in_loop1
! 829: $ endif
! 830: $!
! 831: $ if key2 .eqs. "DUP_BROKEN"
! 832: $ then
! 833: $ write tf "#ifndef ''key2'"
! 834: $ write tf "#define ''key2' 1"
! 835: $ write tf "#endif"
! 836: $ goto cfgh_in_loop1
! 837: $ endif
! 838: $!
! 839: $! This is for a test that getcwd(0,0) works.
! 840: $! It does not on VMS.
! 841: $!--------------------------
! 842: $ if key2 .eqs. "GETCWD_BROKEN"
! 843: $ then
! 844: $ write sys$output ""
! 845: $ write sys$output -
! 846: "%CONFIG_H-I-NONPORT, ''key2' being tested for!"
! 847: $ write sys$output -
! 848: "-CONFIG_H-I-GETCWD, GETCWD(0,0) does not work on VMS."
! 849: $ write sys$output -
! 850: "-CONFIG_H-I-GETCWD2, Work around hack probably required."
! 851: $ write sys$output -
! 852: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 853: $ if update_config_vms
! 854: $ then
! 855: $ open/append tfcv sys$disk:[]config_vms.h
! 856: $ write tfcv ""
! 857: $ write tfcv -
! 858: "/* Check config.h for use of ''key2' settings */"
! 859: $ write tfcv ""
! 860: $ close tfcv
! 861: $ endif
! 862: $
! 863: $ goto cfgh_in_loop1
! 864: $ endif
! 865: $!
! 866: $ if (key2a .eqs. "HAVE") .or. (key2a .eqs. "STAT") .or. -
! 867: (key2 .eqs. "ENABLE_IPV6") .or. (key2b .eqs. "LDAP")
! 868: $ then
! 869: $!
! 870: $! Process extra underscores
! 871: $!------------------------------------
! 872: $ if f$locate("HAVE___", key2) .lt. key2_len
! 873: $ then
! 874: $ key2b = "__" + key2d
! 875: $ key2d = ""
! 876: $ double_under = 1
! 877: $ else
! 878: $ if f$locate("HAVE__", key2) .lt. key2_len
! 879: $ then
! 880: $ key2b = "_" + key2c
! 881: $ key2c = ""
! 882: $ double_under = 1
! 883: $ endif
! 884: $ endif
! 885: $!
! 886: $ if (key2_h .eqs. "_H") .or. (key2 .eqs. "ENABLE_IPV6") .or. -
! 887: (key2b .eqs. "LDAP")
! 888: $ then
! 889: $!
! 890: $! Looking for a header file
! 891: $!---------------------------------------
! 892: $ headf = key2b
! 893: $ if key2c .nes. "" then headf = headf + "_" + key2c
! 894: $ if key2d .nes. "" then headf = headf + "_" + key2d
! 895: $!
! 896: $! (key2b .eqs. "READLINE")
! 897: $!
! 898: $! Some special parsing
! 899: $!------------------------------------------
! 900: $ if (key2b .eqs. "SYS") .or. (key2b .eqs. "ARPA") .or. -
! 901: (key2b .eqs. "NET") .or. (key2b .eqs. "NETINET")
! 902: $ then
! 903: $ if key2c .nes. ""
! 904: $ then
! 905: $ headf = key2c
! 906: $ if key2d .nes. "" then headf = key2c + "_" + key2d
! 907: $ endif
! 908: $ endif
! 909: $!
! 910: $! And of course what's life with out some special cases
! 911: $!--------------------------------------------------------------------
! 912: $ if key2 .eqs. "ENABLE_IPV6"
! 913: $ then
! 914: $ headf = "in6"
! 915: $ endif
! 916: $!
! 917: $ if key2b .eqs. "LDAP"
! 918: $ then
! 919: $ if (key2 .eqs. "HAVE_LDAP_SSL") .or. -
! 920: (key2 .eqs. "HAVE_LDAP_URL_PARSE")
! 921: $ then
! 922: $ headf = "ldap"
! 923: $ endif
! 924: $ endif
! 925: $!
! 926: $!
! 927: $ if key2b .eqs. "FILE"
! 928: $ then
! 929: $ write sys$output ""
! 930: $ write sys$output -
! 931: "%CONFIG_H-I-NONPORT, ''key2' being asked for!"
! 932: $ write sys$output -
! 933: "-CONFIG_H-I-FILE_OLD, file.h will not be configured as is obsolete!"
! 934: $ write sys$output -
! 935: "-CONFIG_H_I-FCNTL_NEW, "Expecting fcntl.h to be configured instead!"
! 936: $ write sys$output -
! 937: "-CONFIG_H_I-FCNTL_CHK, "Unable to verify at this time!"
! 938: $ write sys$output -
! 939: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 940: $!
! 941: $ if update_config_vms
! 942: $ then
! 943: $ open/append tfcv sys$disk:[]config_vms.h
! 944: $ write tfcv ""
! 945: $ write tfcv -
! 946: "/* Check config.h for use of fcntl.h instead of file.h */"
! 947: $ write tfcv ""
! 948: $ close tfcv
! 949: $ endif
! 950: $ endif
! 951: $!
! 952: $! Now look it up in the DEC C RTL
! 953: $!---------------------------------------------
! 954: $ define/user sys$output nl:
! 955: $ define/user sys$error nl:
! 956: $ search/output=nl: 'dchfile' |'headf'|/exact
! 957: $ if '$severity' .eq. 1
! 958: $ then
! 959: $ if key64 then write tf "#ifndef __VAX"
! 960: $ write tf "#ifndef ''key2'"
! 961: $ write tf "#define ''key2' 1"
! 962: $if p2 .nes. "" then write sys$output "''dchfile' - #define ''key2' 1"
! 963: $ write tf "#endif"
! 964: $ if key64 then write tf "#endif"
! 965: $set nover
! 966: $ goto cfgh_in_loop1
! 967: $ endif
! 968: $!
! 969: $!
! 970: $! Now look it up in the DEC C STARLET_C
! 971: $!---------------------------------------------
! 972: $ define/user sys$output nl:
! 973: $ define/user sys$error nl:
! 974: $ search/output=nl: 'starhfile' |'headf'|/exact
! 975: $ if '$severity' .eq. 1
! 976: $ then
! 977: $ if key64 then write tf "#ifndef __VAX"
! 978: $ write tf "#ifndef ''key2'"
! 979: $ write tf "#define ''key2' 1"
! 980: $if p2 .nes. "" then write sys$output "''starfile' - #define ''key2' 1"
! 981: $ write tf "#endif"
! 982: $ if key64 then write tf "#endif"
! 983: $set nover
! 984: $ goto cfgh_in_loop1
! 985: $ endif
! 986: $!
! 987: $! Now look for OPENSSL headers
! 988: $!---------------------------------------------------------
! 989: $ if key2b .eqs. "OPENSSL"
! 990: $ then
! 991: $ headf = headf - "OPENSSL_"
! 992: $ header = f$search("''ssl_header_dir'''headf'.h")
! 993: $ if header .nes. ""
! 994: $ then
! 995: $ write tf "#ifndef ''key2'"
! 996: $ write tf "#define ''key2' 1"
! 997: $ write tf "#endif"
! 998: $set nover
! 999: $ goto cfgh_in_loop1
! 1000: $ endif
! 1001: $ endif
! 1002: $!
! 1003: $! Now look for Kerberos
! 1004: $!------------------------------------------------------------
! 1005: $ if key2b .eqs. "GSSAPI"
! 1006: $ then
! 1007: $ header_dir = "sys$sysroot:[kerberos.include]"
! 1008: $ headf = headf - "GSSAPI_"
! 1009: $ header = f$search("''header_dir'''headf'.h")
! 1010: $ if header .nes. ""
! 1011: $ then
! 1012: $ write tf "#ifndef ''key2'"
! 1013: $ write tf "#define ''key2' 1"
! 1014: $ write tf "#endif"
! 1015: $set nover
! 1016: $ goto cfgh_in_loop1
! 1017: $ endif
! 1018: $ endif
! 1019: $!
! 1020: $set nover
! 1021: $ else
! 1022: $!
! 1023: $! Looking for a routine or a symbol
! 1024: $!------------------------------------------------
! 1025: $ if key2c .eqs. "MACRO"
! 1026: $ then
! 1027: $ if (key2b .eqs. "FILE") .or. (key2b .eqs. "DATE") -
! 1028: .or. (key2b .eqs. "LINE") .or. (key2b .eqs. "TIME")
! 1029: $ then
! 1030: $ write tf "#ifndef HAVE_''key2b'"
! 1031: $ write tf "#define HAVE_''key2b' 1"
! 1032: $ write tf "#endif"
! 1033: $ endif
! 1034: $ goto cfgh_in_loop1
! 1035: $ endif
! 1036: $!
! 1037: $! Special false tests
! 1038: $!-------------------------------------
! 1039: $ if double_under
! 1040: $ then
! 1041: $ if key2b .eqs. "_FCNTL" .or. key2b .eqs. "__FCNTL"
! 1042: $ then
! 1043: $ write tf "/* #undef HAVE_''key2b' */"
! 1044: $ goto cfgh_in_loop1
! 1045: $ endif
! 1046: $!
! 1047: $ if key2b .eqs. "_STAT" .or. key2b .eqs. "__STAT"
! 1048: $ then
! 1049: $ write tf "/* #undef HAVE_''key2b' */"
! 1050: $ goto cfgh_in_loop1
! 1051: $ endif
! 1052: $!
! 1053: $ if key2b .eqs. "_READ" .or. key2b .eqs. "__READ"
! 1054: $ then
! 1055: $ write tf "/* #undef HAVE_''key2b' */"
! 1056: $ goto cfgh_in_loop1
! 1057: $ endif
! 1058: $ endif
! 1059: $!
! 1060: $ keysym = key2b
! 1061: $ if key2c .nes. "" then keysym = keysym + "_" + key2c
! 1062: $ if key2d .nes. "" then keysym = keysym + "_" + key2d
! 1063: $ if key2e .nes. "" then keysym = keysym + "_" + key2e
! 1064: $!
! 1065: $!
! 1066: $! Stat structure members
! 1067: $!-------------------------------------
! 1068: $ if key2b .eqs. "STRUCT"
! 1069: $ then
! 1070: $ if key2c .eqs. "STAT" .and (key2d .nes. "")
! 1071: $ then
! 1072: $ key2b = key2b + "_" + key2c + "_" + key2d
! 1073: $ key2c = key2e
! 1074: $ key2d = ""
! 1075: $ key2e = ""
! 1076: $ endif
! 1077: $ endif
! 1078: $ if (key2b .eqs. "ST") .or. (key2b .eqs. "STRUCT_STAT_ST")
! 1079: $ then
! 1080: $ keysym = "ST" + "_" + key2c
! 1081: $ keysym = f$edit(keysym,"LOWERCASE")
! 1082: $ endif
! 1083: $ if key2a .eqs. "STAT"
! 1084: $ then
! 1085: $ if (f$locate("STATVFS", key2b) .eq. 0) .and. key2c .eqs. ""
! 1086: $ then
! 1087: $ keysym = f$edit(key2b, "LOWERCASE")
! 1088: $ endif
! 1089: $!$ if (key2b .eqs. "STATVFS" .or. key2b .eqs. "STATFS2" -
! 1090: $! .or. key2b .eqs. "STATFS3") .and. key2c .nes. ""
! 1091: $!
! 1092: $ if (key2b .eqs. "STATVFS") .and. key2c .nes. ""
! 1093: $ then
! 1094: $! Should really verify that the structure
! 1095: $! named by key2b actually exists first.
! 1096: $!------------------------------------------------------------
! 1097: $!
! 1098: $! Statvfs structure members
! 1099: $!-------------------------------------------------
! 1100: $ keysym = "f_" + f$edit(key2c,"LOWERCASE")
! 1101: $ endif
! 1102: $ endif
! 1103: $!
! 1104: $! UTMPX structure members
! 1105: $!--------------------------------------
! 1106: $ if key2b .eqs. "UT" .and. key2c .eqs. "UT"
! 1107: $ then
! 1108: $ keysym = "ut_" + f$edit(key2d,"LOWERCASE")
! 1109: $ endif
! 1110: $!
! 1111: $ if f$locate("MMAP",key2) .lt. key2_len
! 1112: $ then
! 1113: $ write sys$output ""
! 1114: $ write sys$output -
! 1115: "%CONFIG_H-I-NONPORT, ''key2' being asked for!"
! 1116: $ write sys$output -
! 1117: "-CONFIG_H-I-MMAP, MMAP operations only work on STREAM and BINARY files!"
! 1118: $ write sys$output -
! 1119: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 1120: $ if update_config_vms
! 1121: $ then
! 1122: $ open/append tfcv sys$disk:[]config_vms.h
! 1123: $ write tfcv ""
! 1124: $ write tfcv -
! 1125: "/* Check config.h for use of ''key2' settings */"
! 1126: $ write tfcv ""
! 1127: $ close tfcv
! 1128: $ endif
! 1129: $ endif
! 1130: $!
! 1131: $!
! 1132: $ if keysym .eqs. "CRYPT"
! 1133: $ then
! 1134: $ write sys$output ""
! 1135: $ write sys$output -
! 1136: "%CONFIG_H-I-NONPORT, ''key2' being asked for!"
! 1137: $ write sys$output -
! 1138: "-CONFIG_H-I-CRYPT, CRYPT operations on the VMS SYSUAF may not work!"
! 1139: $ write sys$output -
! 1140: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 1141: $ if update_config_vms
! 1142: $ then
! 1143: $ open/append tfcv sys$disk:[]config_vms.h
! 1144: $ write tfcv ""
! 1145: $ write tfcv -
! 1146: "/* Check config.h for use of ''keysym' */"
! 1147: $ write tfcv ""
! 1148: $ close tfcv
! 1149: $ endif
! 1150: $ endif
! 1151: $!
! 1152: $!
! 1153: $ if keysym .eqs. "EXECL"
! 1154: $ then
! 1155: $ write sys$output ""
! 1156: $ write sys$output -
! 1157: "%CONFIG_H-I-NONPORT, ''key2' being asked for!"
! 1158: $ write sys$output -
! 1159: "-CONFIG_H-I-EXCEL, EXECL configured, Will probably not work."
! 1160: $ write sys$output -
! 1161: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 1162: $ if update_config_vms
! 1163: $ then
! 1164: $ open/append tfcv sys$disk:[]config_vms.h
! 1165: $ write tfcv ""
! 1166: $ write tfcv -
! 1167: "/* Check config.h for use of ''keysym' */"
! 1168: $ write tfcv ""
! 1169: $ close tfcv
! 1170: $ endif
! 1171: $ endif
! 1172: $!
! 1173: $!
! 1174: $! Process if cpp supports ANSI-C stringizing '#' operator
! 1175: $!-----------------------------------------------------------------------
! 1176: $ if keysym .eqs. "STRINGIZE"
! 1177: $ then
! 1178: $ write tf "#ifndef HAVE_STRINGIZE"
! 1179: $ write tf "#define HAVE_STRINGSIZE 1"
! 1180: $ write tf "#endif"
! 1181: $ goto cfgh_in_loop1
! 1182: $ endif
! 1183: $!
! 1184: $ if keysym .eqs. "VOLATILE"
! 1185: $ then
! 1186: $ write tf "#ifndef HAVE_VOLATILE"
! 1187: $ write tf "#define HAVE_VOLATILE 1"
! 1188: $ write tf "#endif"
! 1189: $ goto cfgh_in_loop1
! 1190: $ endif
! 1191: $!
! 1192: $ if keysym .eqs. "ALLOCA"
! 1193: $ then
! 1194: $ write tf "#ifndef HAVE_ALLOCA"
! 1195: $ write tf "#define HAVE_ALLOCA 1"
! 1196: $ write tf "#endif"
! 1197: $ goto cfgh_in_loop1
! 1198: $ endif
! 1199: $!
! 1200: $ if keysym .eqs. "ERRNO_DECL"
! 1201: $ then
! 1202: $ write tf "#ifndef HAVE_ERRNO_DECL"
! 1203: $ write tf "#define HAVE_ERRNO_DECL 1"
! 1204: $ write tf "#endif"
! 1205: $ goto cfgh_in_loop1
! 1206: $ endif
! 1207: $!
! 1208: $ if keysym .eqs. "LONGLONG"
! 1209: $ then
! 1210: $ write tf "#ifndef __VAX"
! 1211: $ write tf "#pragma message disable longlongtype"
! 1212: $ write tf "#ifndef HAVE_LONGLONG"
! 1213: $ write tf "#define HAVE_LONGLONG 1"
! 1214: $ write tf "#endif"
! 1215: $ write tf "#endif"
! 1216: $ goto cfgh_in_loop1
! 1217: $ endif
! 1218: $!
! 1219: $! May need to test compiler version
! 1220: $!-----------------------------------------------
! 1221: $ if keysym .eqs. "LONG_LONG"
! 1222: $ then
! 1223: $ write tf "#ifndef __VAX"
! 1224: $ write tf "#pragma message disable longlongtype"
! 1225: $ write tf "#ifndef HAVE_LONG_LONG"
! 1226: $ write tf "#define HAVE_LONG_LONG 1"
! 1227: $ write tf "#endif"
! 1228: $ write tf "#endif"
! 1229: $ goto cfgh_in_loop1
! 1230: $ endif
! 1231: $!
! 1232: $! May need to test compiler version
! 1233: $!-----------------------------------------------
! 1234: $ if keysym .eqs. "UNSIGNED_LONG_LONG"
! 1235: $ then
! 1236: $ write tf "#ifndef __VAX"
! 1237: $ write tf "#pragma message disable longlongtype"
! 1238: $ write tf "#ifndef HAVE_UNSIGNED_LONG_LONG"
! 1239: $ write tf "#define HAVE_UNSIGNED_LONG_LONG 1"
! 1240: $ write tf "#endif"
! 1241: $ write tf "#endif"
! 1242: $ goto cfgh_in_loop1
! 1243: $ endif
! 1244: $!
! 1245: $! May need to test compiler version
! 1246: $!-----------------------------------------------
! 1247: $ if keysym .eqs. "UNSIGNED_LONG_LONG_INT"
! 1248: $ then
! 1249: $ write tf "#ifndef __VAX"
! 1250: $ write tf "#pragma message disable longlongtype"
! 1251: $ write tf "#ifndef HAVE_UNSIGNED_LONG_LONG_INT"
! 1252: $ write tf "#define HAVE_UNSIGNED_LONG_LONG_INT 1"
! 1253: $ write tf "#endif"
! 1254: $ write tf "#endif"
! 1255: $ goto cfgh_in_loop1
! 1256: $ endif
! 1257: $!
! 1258: $! May need to test compiler version
! 1259: $!-----------------------------------------------
! 1260: $ if keysym .eqs. "LONG_DOUBLE"
! 1261: $ then
! 1262: $ write tf "#ifndef __VAX"
! 1263: $ write tf "#pragma message disable longlongtype"
! 1264: $ write tf "#ifndef HAVE_LONG_DOUBLE"
! 1265: $ write tf "#define HAVE_LONG_DOUBLE 1"
! 1266: $ write tf "#endif"
! 1267: $ write tf "#endif"
! 1268: $ goto cfgh_in_loop1
! 1269: $ endif
! 1270: $!
! 1271: $ if keysym .eqs. "FCNTL_LOCK"
! 1272: $ then
! 1273: $ write sys$output -
! 1274: "%CONFIG_H-I-NONPORT, ''key2' being asked for!
! 1275: $ write sys$output -
! 1276: "-CONFIG_H-I-REVIEW, Manual Code review required!"
! 1277: $ goto cfgh_in_loop1
! 1278: $ endif
! 1279: $!
! 1280: $!
! 1281: $! These libraries are provided by the DEC C RTL
! 1282: $!-------------------------------------------------------------
! 1283: $ if keysym .eqs. "LIBINET" .or. keysym .eqs. "LIBSOCKET"
! 1284: $ then
! 1285: $ write tf "#ifndef HAVE_''keysym'"
! 1286: $ write tf "#define HAVE_''keysym' 1"
! 1287: $if p2 .nes. "" then write sys$output "''decc_shr' #define ''keysym' 1"
! 1288: $ write tf "#endif
! 1289: $ goto cfgh_in_loop1
! 1290: $ endif
! 1291: $!
! 1292: $ if keysym .eqs. "HERRNO" then keysym = "h_errno"
! 1293: $ if keysym .eqs. "UTIMBUF" then keysym = "utimbuf"
! 1294: $ if key2c .eqs. "STRUCT"
! 1295: $ then
! 1296: $ keysym = f$edit(key2d,"LOWERCASE")
! 1297: $ else
! 1298: $ if key2_h .eqs. "_T"
! 1299: $ then
! 1300: $ if key2_t .eqs. "_TYPE"
! 1301: $ then
! 1302: $ keysym = f$extract(0, key2_len - 5, key2) - "HAVE_"
! 1303: $ endif
! 1304: $ keysym = f$edit(keysym,"LOWERCASE")
! 1305: $ endif
! 1306: $ endif
! 1307: $!
! 1308: $! Check the DEC C RTL shared image first
! 1309: $!------------------------------------------------------
! 1310: $ if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 1311: $ define/user sys$output nl:
! 1312: $ define/user sys$error nl:
! 1313: $ search/format=nonull/out='tfile1' 'decc_shr' 'keysym'
! 1314: $ if '$severity' .eq. 1
! 1315: $ then
! 1316: $!
! 1317: $! Not documented, but from observation
! 1318: $!------------------------------------------------------
! 1319: $ define/user sys$output nl:
! 1320: $ define/user sys$error nl:
! 1321: $ if arch_type .eq. 3
! 1322: $ then
! 1323: $ keyterm = "''keysym'<SOH>"
! 1324: $ else
! 1325: $ if arch_type .eq. 2
! 1326: $ then
! 1327: $ keyterm = "''keysym'<BS>"
! 1328: $ else
! 1329: $ keyterm = "''keysym'<STX>"
! 1330: $ endif
! 1331: $ endif
! 1332: $ search/out=nl: 'tfile1' -
! 1333: "$''keyterm'","$g''keyterm'","$__utc_''keyterm'",-
! 1334: "$__utctz_''keyterm'","$__bsd44_''keyterm'","$bsd_''keyterm'",-
! 1335: "$''keysym'decc$","$G''keysym'decc$","$GX''keyterm'"
! 1336: $ severity = '$severity'
! 1337: $!
! 1338: $!
! 1339: $! Of course the 64 bit stuff is different
! 1340: $!---------------------------------------------------------
! 1341: $ if severity .ne. 1 .and. key64
! 1342: $ then
! 1343: $ define/user sys$output nl:
! 1344: $ define/user sys$error nl:
! 1345: $ search/out=nl: 'tfile1' "$_''keyterm'"
! 1346: $! search/out 'tfile1' "$_''keyterm'"
! 1347: $ severity = '$severity'
! 1348: $ endif
! 1349: $!
! 1350: $! Unix compatibility routines
! 1351: $!---------------------------------------------
! 1352: $ if severity .ne. 1
! 1353: $ then
! 1354: $ define/user sys$output nl:
! 1355: $ define/user sys$error nl:
! 1356: $ search/out=nl: 'tfile1' -
! 1357: "$__unix_''keyterm'","$__vms_''keyterm'","$_posix_''keyterm'"
! 1358: $ severity = '$severity'
! 1359: $ endif
! 1360: $!
! 1361: $! Show the result of the search
! 1362: $!------------------------------------------------
! 1363: $ if 'severity' .eq. 1
! 1364: $ then
! 1365: $ if key64 then write tf "#ifndef __VAX"
! 1366: $ write tf "#ifndef ''key2'"
! 1367: $ write tf "#define ''key2' 1"
! 1368: $if p2 .nes. "" then write sys$output "''decc_shr' #define ''key2' 1"
! 1369: $ write tf "#endif"
! 1370: $ if key64 then write tf "#endif"
! 1371: $ goto cfgh_in_loop1
! 1372: $ endif
! 1373: $ endif
! 1374: $ if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 1375: $!
! 1376: $! Check the DECC Header files next
! 1377: $!----------------------------------------------
! 1378: $ define/user sys$output nl:
! 1379: $ define/user sys$error nl:
! 1380: $ search/out=nl: 'decc_rtldef' -
! 1381: "''keysym';", "''keysym'[", "struct ''keysym'"/exact
! 1382: $ severity = '$severity'
! 1383: $ if severity .eq. 1
! 1384: $ then
! 1385: $ if key64 then write tf "#ifndef __VAX"
! 1386: $ write tf "#ifndef ''key2'"
! 1387: $ write tf "#define ''key2' 1"
! 1388: $if p2 .nes. "" then write sys$output "''decc_rtldef' #define ''key2' 1"
! 1389: $ write tf "#endif"
! 1390: $ if key64 then write tf "#endif"
! 1391: $ goto cfgh_in_loop1
! 1392: $ endif
! 1393: $!
! 1394: $! Check kerberos
! 1395: $!--------------------------------------------
! 1396: $ if f$search("SYS$SYSROOT:[kerberos]include.dir") .nes. ""
! 1397: $ then
! 1398: $ test_mit = "SYS$SYSROOT:[kerberos.include]gssapi_krb5.h"
! 1399: $ if (key2 .eqs. "HAVE_GSSAPI")
! 1400: $ then
! 1401: $ write tf "#ifndef ''key2'"
! 1402: $ write tf "#define ''key2' 1"
! 1403: $ write tf "#endif"
! 1404: $ goto cfgh_in_loop1
! 1405: $ endif
! 1406: $!
! 1407: $! This is really do we have the newer MIT Kerberos
! 1408: $!----------------------------------------------------------------------
! 1409: $ if (key2 .eqs. "HAVE_GSSMIT")
! 1410: $ then
! 1411: $ if f$search(test_mit) .nes. ""
! 1412: $ then
! 1413: $ write tf "#ifndef ''key2'"
! 1414: $ write tf "#define ''key2' 1"
! 1415: $ else
! 1416: $ write tf "#ifdef ''key2'"
! 1417: $ write tf "#undef ''key2'"
! 1418: $ endif
! 1419: $ write tf "#endif"
! 1420: $ goto cfgh_in_loop1
! 1421: $ endif
! 1422: $!
! 1423: $! Older MIT looks like Heimdal
! 1424: $!------------------------------------------------
! 1425: $ if (key2 .eqs. "HAVE_HEIMDAL")
! 1426: $ then
! 1427: $ if f$search(test_mit) .eqs. ""
! 1428: $ then
! 1429: $ write tf "#ifndef ''key2'"
! 1430: $ write tf "#define ''key2' 1"
! 1431: $ else
! 1432: $ write tf "#ifdef ''key2'"
! 1433: $ write tf "#undef ''key2'"
! 1434: $ endif
! 1435: $ write tf "#endif"
! 1436: $ goto cfgh_in_loop1
! 1437: $ endif
! 1438: $ endif
! 1439: $!
! 1440: $ endif
! 1441: $ write tf "/* ", xline, " */"
! 1442: $ goto cfgh_in_loop1
! 1443: $ endif
! 1444: $!
! 1445: $!
! 1446: $! Process SIZEOF directives found in SAMBA and others
! 1447: $!----------------------------------------------------------
! 1448: $ if key2a .eqs. "SIZEOF"
! 1449: $ then
! 1450: $ if key2b .eqs. "INO" .and. key2_h .eqs. "_T"
! 1451: $ then
! 1452: $ write tf "#ifndef SIZEOF_INO_T"
! 1453: $ write tf "#if !__USING_STD_STAT
! 1454: $ write tf "#define SIZEOF_INO_T 6"
! 1455: $ write tf "#else
! 1456: $ write tf "#define SIZEOF_INO_T 8"
! 1457: $ write tf "#endif
! 1458: $ write tf "#endif"
! 1459: $ goto cfgh_in_loop1
! 1460: $ endif
! 1461: $ if key2b .eqs. "INTMAX" .and. key2_h .eqs. "_T"
! 1462: $ then
! 1463: $ write tf "#ifndef SIZEOF_INTMAX_T"
! 1464: $ write tf "#ifdef __VAX"
! 1465: $ write tf "#define SIZEOF_INTMAX_T 4"
! 1466: $ write tf "#else"
! 1467: $ write tf "#define SIZEOF_INTMAX_T 8"
! 1468: $ write tf "#endif"
! 1469: $ write tf "#endif"
! 1470: $ goto cfgh_in_loop1
! 1471: $ endif
! 1472: $ if key2b .eqs. "OFF" .and. key2_h .eqs. "_T"
! 1473: $ then
! 1474: $ write tf "#ifndef SIZEOF_OFF_T"
! 1475: $ write tf "#if __USE_OFF64_T"
! 1476: $ write tf "#define SIZEOF_OFF_T 8"
! 1477: $ write tf "#else"
! 1478: $ write tf "#define SIZEOF_OFF_T 4"
! 1479: $ write tf "#endif"
! 1480: $ write tf "#endif"
! 1481: $ goto cfgh_in_loop1
! 1482: $ endif
! 1483: $ if key2b .eqs. "CHAR" .and. key2_h .eqs. "_P"
! 1484: $ then
! 1485: $ write tf "#ifndef SIZEOF_CHAR_P"
! 1486: $ write tf "#if __INITIAL_POINTER_SIZE == 64"
! 1487: $ write tf "#define SIZEOF_CHAR_P 8"
! 1488: $ write tf "#else"
! 1489: $ write tf "#define SIZEOF_CHAR_P 4"
! 1490: $ write tf "#endif"
! 1491: $ goto cfgh_in_loop1
! 1492: $ endif
! 1493: $ if key2b .eqs. "VOIDP"
! 1494: $ then
! 1495: $ write tf "#ifndef SIZEOF_VOIDP"
! 1496: $ write tf "#if __INITIAL_POINTER_SIZE == 64"
! 1497: $ write tf "#define SIZEOF_VOIDP 8"
! 1498: $ write tf "#else"
! 1499: $ write tf "#define SIZEOF_VOIDP 4"
! 1500: $ write tf "#endif"
! 1501: $ write tf "#endif"
! 1502: $ goto cfgh_in_loop1
! 1503: $ endif
! 1504: $ if key2b .eqs. "INT"
! 1505: $ then
! 1506: $ write tf "#ifndef SIZEOF_INT"
! 1507: $ write tf "#define SIZEOF_INT 4"
! 1508: $ write tf "#endif"
! 1509: $ goto cfgh_in_loop1
! 1510: $ endif
! 1511: $ if key2b .eqs. "SIZE" .and. key2_h .eqs. "_T"
! 1512: $ then
! 1513: $ write tf "#ifndef SIZEOF_SIZE_T"
! 1514: $ write tf "#define SIZEOF_SIZE_T 4"
! 1515: $ write tf "#endif"
! 1516: $ goto cfgh_in_loop1
! 1517: $ endif
! 1518: $ if key2b .eqs. "TIME" .and. key2_h .eqs. "_T"
! 1519: $ then
! 1520: $ write tf "#ifndef SIZEOF_TIME_T"
! 1521: $ write tf "#define SIZEOF_TIME_T 4"
! 1522: $ write tf "#endif"
! 1523: $ goto cfgh_in_loop1
! 1524: $ endif
! 1525: $ if key2b .eqs. "DOUBLE"
! 1526: $ then
! 1527: $ write tf "#ifndef SIZEOF_DOUBLE"
! 1528: $ write tf "#define SIZEOF_DOUBLE 8"
! 1529: $ write tf "#endif"
! 1530: $ goto cfgh_in_loop1
! 1531: $ endif
! 1532: $ if key2b .eqs. "LONG"
! 1533: $ then
! 1534: $ if key2c .eqs. ""
! 1535: $ then
! 1536: $ write tf "#ifndef SIZEOF_LONG"
! 1537: $ write tf "#define SIZEOF_LONG 4"
! 1538: $ write tf "#endif"
! 1539: $ else
! 1540: $ write tf "#ifndef SIZEOF_LONG_LONG"
! 1541: $ write tf "#ifndef __VAX"
! 1542: $ write tf "#define SIZEOF_LONG_LONG 8"
! 1543: $ write tf "#endif"
! 1544: $ write tf "#endif"
! 1545: $ endif
! 1546: $ goto cfgh_in_loop1
! 1547: $ endif
! 1548: $ if key2b .eqs. "SHORT"
! 1549: $ then
! 1550: $ write tf "#ifndef SIZEOF_SHORT"
! 1551: $ write tf "#define SIZEOF_SHORT 2"
! 1552: $ write tf "#endif"
! 1553: $ goto cfgh_in_loop1
! 1554: $ endif
! 1555: $ write tf "/* ", xline, " */"
! 1556: $ goto cfgh_in_loop1
! 1557: $ endif
! 1558: $!
! 1559: $! Process NEED directives
! 1560: $!-------------------------------
! 1561: $ if key2a .eqs. "NEED"
! 1562: $ then
! 1563: $ if key2b .eqs. "STRINGS" .and. key2_h .eqs. "_H"
! 1564: $ then
! 1565: $ write tf "#ifndef NEED_STRINGS_H"
! 1566: $ write tf "#define NEED_STRINGS_H 1"
! 1567: $ write tf "#endif"
! 1568: $ goto cfgh_in_loop1
! 1569: $ endif
! 1570: $ write tf "/* ", xline, " */"
! 1571: $ goto cfgh_in_loop1
! 1572: $ endif
! 1573: $!
! 1574: $! Process GETHOSTNAME directives
! 1575: $!-------------------------------------
! 1576: $ if key2 .eqs. "GETHOSTNAME_TYPE_ARG2"
! 1577: $ then
! 1578: $ write tf "#ifndef ''key2'"
! 1579: $ write tf "#ifdef _DECC_V4_SOURCE"
! 1580: $ write tf "#define ''key2' int"
! 1581: $ write tf "#else"
! 1582: $ write tf "#define ''key2' size_t"
! 1583: $ write tf "#endif"
! 1584: $ write tf "#endif"
! 1585: $ goto cfgh_in_loop1
! 1586: $ endif
! 1587: $!
! 1588: $! Process GETNAMEINFO directives
! 1589: $!-------------------------------------
! 1590: $ if key2a .eqs. "GETNAMEINFO"
! 1591: $ then
! 1592: $ if key2 .eqs. "GETNAMEINFO_QUAL_ARG1"
! 1593: $ then
! 1594: $ write tf "#ifndef ''key2'"
! 1595: $ write tf "#define ''key2' const"
! 1596: $ write tf "#endif"
! 1597: $ goto cfgh_in_loop1
! 1598: $ endif
! 1599: $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG1"
! 1600: $ then
! 1601: $ write tf "#ifndef ''key2'"
! 1602: $ write tf "#define ''key2' struct sockaddr *"
! 1603: $ write tf "#endif"
! 1604: $ goto cfgh_in_loop1
! 1605: $ endif
! 1606: $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG2"
! 1607: $ then
! 1608: $ write tf "#ifndef ''key2'"
! 1609: $ write tf "#define ''key2' size_t"
! 1610: $ write tf "#endif"
! 1611: $ goto cfgh_in_loop1
! 1612: $ endif
! 1613: $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG46"
! 1614: $ then
! 1615: $ write tf "#ifndef ''key2'"
! 1616: $ write tf "#define ''key2' size_t"
! 1617: $ write tf "#endif"
! 1618: $ goto cfgh_in_loop1
! 1619: $ endif
! 1620: $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG7"
! 1621: $ then
! 1622: $ write tf "#ifndef ''key2'"
! 1623: $ write tf "#define ''key2' int"
! 1624: $ write tf "#endif"
! 1625: $ goto cfgh_in_loop1
! 1626: $ endif
! 1627: $ endif
! 1628: $!
! 1629: $! Process RECV directives
! 1630: $!-------------------------------------
! 1631: $ if key2a .eqs. "RECV"
! 1632: $ then
! 1633: $ if key2 .eqs. "RECV_TYPE_ARG1"
! 1634: $ then
! 1635: $ write tf "#ifndef ''key2'"
! 1636: $ write tf "#define ''key2' int"
! 1637: $ write tf "#endif"
! 1638: $ goto cfgh_in_loop1
! 1639: $ endif
! 1640: $ if key2 .eqs. "RECV_TYPE_ARG2"
! 1641: $ then
! 1642: $ write tf "#ifndef ''key2'"
! 1643: $ write tf "#define ''key2' void *"
! 1644: $ write tf "#endif"
! 1645: $ goto cfgh_in_loop1
! 1646: $ endif
! 1647: $ if key2 .eqs. "RECV_TYPE_ARG3"
! 1648: $ then
! 1649: $ write tf "#ifndef ''key2'"
! 1650: $ write tf "#define ''key2' size_t"
! 1651: $ write tf "#endif"
! 1652: $ goto cfgh_in_loop1
! 1653: $ endif
! 1654: $ if key2 .eqs. "RECV_TYPE_ARG4"
! 1655: $ then
! 1656: $ write tf "#ifndef ''key2'"
! 1657: $ write tf "#define ''key2' int"
! 1658: $ write tf "#endif"
! 1659: $ goto cfgh_in_loop1
! 1660: $ endif
! 1661: $ if key2 .eqs. "RECV_TYPE_RETV"
! 1662: $ then
! 1663: $ write tf "#ifndef ''key2'"
! 1664: $ write tf "#define ''key2' int"
! 1665: $ write tf "#endif"
! 1666: $ goto cfgh_in_loop1
! 1667: $ endif
! 1668: $ endif
! 1669: $!
! 1670: $!
! 1671: $! Process RECVFROM directives
! 1672: $!-------------------------------------
! 1673: $ if key2a .eqs. "RECVFROM"
! 1674: $ then
! 1675: $ if key2 .eqs. "RECVFROM_QUAL_ARG5"
! 1676: $ then
! 1677: $ write tf "#ifndef ''key2'"
! 1678: $ write tf "#define ''key2'"
! 1679: $ write tf "#endif"
! 1680: $ goto cfgh_in_loop1
! 1681: $ endif
! 1682: $ if key2 .eqs. "RECVFROM_TYPE_ARG1"
! 1683: $ then
! 1684: $ write tf "#ifndef ''key2'"
! 1685: $ write tf "#define ''key2' int"
! 1686: $ write tf "#endif"
! 1687: $ goto cfgh_in_loop1
! 1688: $ endif
! 1689: $ if key2 .eqs. "RECVFROM_TYPE_ARG2"
! 1690: $ then
! 1691: $ write tf "#ifndef ''key2'"
! 1692: $ write tf "#define ''key2' void *"
! 1693: $ write tf "#endif"
! 1694: $ goto cfgh_in_loop1
! 1695: $ endif
! 1696: $ if key2 .eqs. "RECVFROM_TYPE_ARG3"
! 1697: $ then
! 1698: $ write tf "#ifndef ''key2'"
! 1699: $ write tf "#define ''key2' size_t"
! 1700: $ write tf "#endif"
! 1701: $ goto cfgh_in_loop1
! 1702: $ endif
! 1703: $ if key2 .eqs. "RECVFROM_TYPE_ARG4"
! 1704: $ then
! 1705: $ write tf "#ifndef ''key2'"
! 1706: $ write tf "#define ''key2' int"
! 1707: $ write tf "#endif"
! 1708: $ goto cfgh_in_loop1
! 1709: $ endif
! 1710: $ if key2 .eqs. "RECVFROM_TYPE_ARG5"
! 1711: $ then
! 1712: $ write tf "#ifndef ''key2'"
! 1713: $ write tf "#define ''key2' struct sockaddr"
! 1714: $ write tf "#endif"
! 1715: $ goto cfgh_in_loop1
! 1716: $ endif
! 1717: $ if key2 .eqs. "RECVFROM_TYPE_ARG6"
! 1718: $ then
! 1719: $ write tf "#ifndef ''key2'"
! 1720: $ write tf "#define ''key2' unsigned int"
! 1721: $ write tf "#endif"
! 1722: $ goto cfgh_in_loop1
! 1723: $ endif
! 1724: $ if key2 .eqs. "RECVFROM_TYPE_RETV"
! 1725: $ then
! 1726: $ write tf "#ifndef ''key2'"
! 1727: $ write tf "#define ''key2' int"
! 1728: $ write tf "#endif"
! 1729: $ goto cfgh_in_loop1
! 1730: $ endif
! 1731: $ endif
! 1732: $!
! 1733: $! Process SELECT directives
! 1734: $!-------------------------------------
! 1735: $ if key2a .eqs. "SELECT"
! 1736: $ then
! 1737: $ if key2 .eqs. "SELECT_QUAL_ARG5"
! 1738: $ then
! 1739: $ write tf "#ifndef ''key2'"
! 1740: $ write tf "#define ''key2' const"
! 1741: $ write tf "#endif"
! 1742: $ goto cfgh_in_loop1
! 1743: $ endif
! 1744: $ if key2 .eqs. "SELECT_TYPE_ARG1"
! 1745: $ then
! 1746: $ write tf "#ifndef ''key2'"
! 1747: $ write tf "#define ''key2' int"
! 1748: $ write tf "#endif"
! 1749: $ goto cfgh_in_loop1
! 1750: $ endif
! 1751: $ if key2 .eqs. "SELECT_TYPE_ARG2"
! 1752: $ then
! 1753: $ write tf "#ifndef ''key2'"
! 1754: $ write tf "#define ''key2' void *"
! 1755: $ write tf "#endif"
! 1756: $ goto cfgh_in_loop1
! 1757: $ endif
! 1758: $ if key2 .eqs. "SELECT_TYPE_ARG234"
! 1759: $ then
! 1760: $ write tf "#ifndef ''key2'"
! 1761: $ write tf "#define ''key2' fd_set *"
! 1762: $ write tf "#endif"
! 1763: $ goto cfgh_in_loop1
! 1764: $ endif
! 1765: $ if key2 .eqs. "SELECT_TYPE_ARG5"
! 1766: $ then
! 1767: $ write tf "#ifndef ''key2'"
! 1768: $ write tf "#define ''key2' struct timeval *"
! 1769: $ write tf "#endif"
! 1770: $ goto cfgh_in_loop1
! 1771: $ endif
! 1772: $ if key2 .eqs. "SELECT_TYPE_RETV"
! 1773: $ then
! 1774: $ write tf "#ifndef ''key2'"
! 1775: $ write tf "#define ''key2' int"
! 1776: $ write tf "#endif"
! 1777: $ goto cfgh_in_loop1
! 1778: $ endif
! 1779: $ endif
! 1780: $!
! 1781: $! Process SEND directives
! 1782: $!-------------------------------------
! 1783: $ if key2a .eqs. "SEND"
! 1784: $ then
! 1785: $ if key2 .eqs. "SEND_QUAL_ARG2"
! 1786: $ then
! 1787: $ write tf "#ifndef ''key2'"
! 1788: $ write tf "#define ''key2' const"
! 1789: $ write tf "#endif"
! 1790: $ goto cfgh_in_loop1
! 1791: $ endif
! 1792: $ if key2 .eqs. "SEND_TYPE_ARG1"
! 1793: $ then
! 1794: $ write tf "#ifndef ''key2'"
! 1795: $ write tf "#define ''key2' int"
! 1796: $ write tf "#endif"
! 1797: $ goto cfgh_in_loop1
! 1798: $ endif
! 1799: $ if key2 .eqs. "SEND_TYPE_ARG2"
! 1800: $ then
! 1801: $ write tf "#ifndef ''key2'"
! 1802: $ write tf "#define ''key2' void *"
! 1803: $ write tf "#endif"
! 1804: $ goto cfgh_in_loop1
! 1805: $ endif
! 1806: $ if key2 .eqs. "SEND_TYPE_ARG3"
! 1807: $ then
! 1808: $ write tf "#ifndef ''key2'"
! 1809: $ write tf "#define ''key2' size_t"
! 1810: $ write tf "#endif"
! 1811: $ goto cfgh_in_loop1
! 1812: $ endif
! 1813: $ if key2 .eqs. "SEND_TYPE_ARG4"
! 1814: $ then
! 1815: $ write tf "#ifndef ''key2'"
! 1816: $ write tf "#define ''key2' int"
! 1817: $ write tf "#endif"
! 1818: $ goto cfgh_in_loop1
! 1819: $ endif
! 1820: $ if key2 .eqs. "SEND_TYPE_RETV"
! 1821: $ then
! 1822: $ write tf "#ifndef ''key2'"
! 1823: $ write tf "#define ''key2' int"
! 1824: $ write tf "#endif"
! 1825: $ goto cfgh_in_loop1
! 1826: $ endif
! 1827: $ endif
! 1828: $!
! 1829: $!
! 1830: $! Process STATFS directives
! 1831: $!-------------------------------
! 1832: $! if key2a .eqs. "STATFS"
! 1833: $! then
! 1834: $! write tf "/* ", xline, " */"
! 1835: $! goto cfgh_in_loop1
! 1836: $! endif
! 1837: $!
! 1838: $! Process inline directive
! 1839: $!------------------------------
! 1840: $ if key2 .eqs. "inline"
! 1841: $ then
! 1842: $ write tf "#ifndef inline"
! 1843: $ write tf "#define inline __inline"
! 1844: $ write tf "#endif"
! 1845: $ goto cfgh_in_loop1
! 1846: $ endif
! 1847: $!
! 1848: $! Process restrict directive
! 1849: $!--------------------------------
! 1850: $ if key2 .eqs. "restrict"
! 1851: $ then
! 1852: $ write tf "#ifndef restrict"
! 1853: $ write tf "#define restrict __restrict"
! 1854: $ write tf "#endif"
! 1855: $ goto cfgh_in_loop1
! 1856: $ endif
! 1857: $!
! 1858: $! Process RETSIGTYPE directive
! 1859: $!----------------------------------
! 1860: $ if key2 .eqs. "RETSIGTYPE"
! 1861: $ then
! 1862: $ write tf "#ifndef RETSIGTYPE"
! 1863: $ write tf "#define RETSIGTYPE void"
! 1864: $ write tf "#endif"
! 1865: $ goto cfgh_in_loop1
! 1866: $ endif
! 1867: $!
! 1868: $! Process STDC_HEADERS (SAMBA!)
! 1869: $!---------------------------
! 1870: $ if key2 .eqs. "STDC_HEADERS"
! 1871: $ then
! 1872: $ write tf "#ifndef STDC_HEADERS"
! 1873: $ write tf "#define STDC_HEADERS 1"
! 1874: $ write tf "#endif"
! 1875: $ goto cfgh_in_loop1
! 1876: $ endif
! 1877: $!
! 1878: $! Process PROTOTYPES directive
! 1879: $!-------------------------------------
! 1880: $ if key2 .eqs. "PROTOTYPES"
! 1881: $ then
! 1882: $ write tf "#ifndef PROTOTYPES"
! 1883: $ write tf "#define PROTOTYPES 1"
! 1884: $ write tf "#endif"
! 1885: $ goto cfgh_in_loop1
! 1886: $ endif
! 1887: $!
! 1888: $! Special for SEEKDIR_RETURNS_VOID
! 1889: $!---------------------------------------
! 1890: $ if key2 .eqs. "SEEKDIR_RETURNS_VOID"
! 1891: $ then
! 1892: $ write tf "#ifndef SEEKDIR_RETURNS_VOID"
! 1893: $ write tf "#define SEEKDIR_RETURNS_VOID 1"
! 1894: $ write tf "#endif"
! 1895: $ endif
! 1896: $!
! 1897: $! Unknown - See if CONFIGURE can give a clue for this
! 1898: $!----------------------------------------------------------
! 1899: $ pflag = 0
! 1900: $ set_flag = 0
! 1901: $! gproj_name = proj_name - "_VMS" - "-VMS"
! 1902: $ if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 1903: $ define/user sys$output nl:
! 1904: $ define/user sys$error nl:
! 1905: $! if f$locate("FILE", key2) .lt. key2_len then pflag = 1
! 1906: $! if f$locate("DIR", key2) .eq. key2_len - 3 then pflag = 1
! 1907: $! if f$locate("PATH", key2) .eq. key2_len - 4 then pflag = 1
! 1908: $!
! 1909: $ search/out='tfile1' 'configure_script' "''key2'="/exact
! 1910: $ search_sev = '$severity'
! 1911: $ if 'search_sev' .eq. 1
! 1912: $ then
! 1913: $ open/read/err=unknown_cf_rd_error sf 'tfile1'
! 1914: $search_file_rd_loop:
! 1915: $ read/end=unknown_cf_rd_err sf line_in
! 1916: $ line_in = f$edit(line_in, "TRIM")
! 1917: $ skey1 = f$element(0,"=",line_in)
! 1918: $ if skey1 .eqs. key2
! 1919: $ then
! 1920: $ skey2 = f$element(1,"=",line_in)
! 1921: $ skey2a = f$extract(0,2,skey2)
! 1922: $!
! 1923: $!
! 1924: $! We can not handle assignment to shell symbols.
! 1925: $! For now skip them.
! 1926: $!------------------------------------------------------------
! 1927: $ if f$locate("$", skey2) .lt. f$length(skey2)
! 1928: $ then
! 1929: $ write tf "/* ", xline, " */"
! 1930: $ set_flag = 1
! 1931: $ goto found_in_configure
! 1932: $ endif
! 1933: $!
! 1934: $! Keep these two cases separate to make it easier to add
! 1935: $! more future intelligence to this routine
! 1936: $!----------------------------------------------------------------------
! 1937: $ if skey2a .eqs. """`"
! 1938: $ then
! 1939: $! if pflag .eq. 1
! 1940: $! then
! 1941: $! write tf "#ifndef ''key2'"
! 1942: $! write tf "#define ",key2," """,gproj_name,"_",key2,""""
! 1943: $! write tf "#endif"
! 1944: $! else
! 1945: $! Ignore this for now
! 1946: $!------------------------------------------
! 1947: $ write tf "/* ", xline, " */"
! 1948: $! endif
! 1949: $ set_flag = 1
! 1950: $ goto found_in_configure
! 1951: $ endif
! 1952: $ if skey2a .eqs. """$"
! 1953: $ then
! 1954: $! if pflag .eq. 1
! 1955: $! then
! 1956: $! write tf "#ifndef ''key2'"
! 1957: $! write tf "#define ",key2," """,gproj_name,"_",key2,""""
! 1958: $! write tf "#endif"
! 1959: $! else
! 1960: $! Ignore this for now
! 1961: $!-------------------------------------------
! 1962: $ write tf "/* ", xline, " */"
! 1963: $! endif
! 1964: $ set_flag = 1
! 1965: $ goto found_in_configure
! 1966: $ endif
! 1967: $!
! 1968: $! Remove multiple layers of quotes if present
! 1969: $!----------------------------------------------------------
! 1970: $ if f$extract(0, 1, skey2) .eqs. "'"
! 1971: $ then
! 1972: $ skey2 = skey2 - "'" - "'" - "'" - "'"
! 1973: $ endif
! 1974: $ if f$extract(0, 1, skey2) .eqs. """"
! 1975: $ then
! 1976: $ skey2 = skey2 - """" - """" - """" - """"
! 1977: $ endif
! 1978: $ write tf "#ifndef ''key2'"
! 1979: $ if skey2 .eqs. ""
! 1980: $ then
! 1981: $ write tf "#define ",key2
! 1982: $ else
! 1983: $! Only quote non-numbers
! 1984: $!----------------------------------------
! 1985: $ if f$string(skey2+0) .eqs. skey2
! 1986: $ then
! 1987: $ write tf "#define ",key2," ",skey2
! 1988: $ else
! 1989: $ write tf "#define ",key2," """,skey2,""""
! 1990: $ endif
! 1991: $ endif
! 1992: $ write tf "#endif"
! 1993: $ set_flag = 1
! 1994: $ else
! 1995: $ goto search_file_rd_loop
! 1996: $! if pflag .eq. 1
! 1997: $! then
! 1998: $! write tf "#ifndef ''key2'"
! 1999: $! write tf "#define ",key2," """,gproj_name,"_",key2,""""
! 2000: $! write tf "#endif"
! 2001: $! set_flag = 1
! 2002: $! endif
! 2003: $ endif
! 2004: $found_in_configure:
! 2005: $unknown_cf_rd_err:
! 2006: $ if f$trnlnm("sf","lnm$process",,"SUPERVISOR") .nes. ""
! 2007: $ then
! 2008: $ close sf
! 2009: $ endif
! 2010: $ if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 2011: $ if set_flag .eq. 1 then goto cfgh_in_loop1
! 2012: $ endif
! 2013: $ endif
! 2014: $!
! 2015: $!
! 2016: $!
! 2017: $! If it falls through everything else, comment it out
! 2018: $!-----------------------------------------------------
! 2019: $ write tf "/* ", xline, " */"
! 2020: $ goto cfgh_in_loop1
! 2021: $cfgh_in_loop1_end:
! 2022: $close inf
! 2023: $!
! 2024: $!
! 2025: $! Write out the tail
! 2026: $!--------------------
! 2027: $write_tail:
! 2028: $gosub write_config_h_tail
! 2029: $!
! 2030: $! Exit and clean up
! 2031: $!--------------------
! 2032: $general_error:
! 2033: $status = '$status'
! 2034: $all_exit:
! 2035: $set noon
! 2036: $if f$trnlnm("sf","lnm$process",,"SUPERVISOR") .nes. "" then close sf
! 2037: $if f$trnlnm("tf","lnm$process",,"SUPERVISOR") .nes. "" then close tf
! 2038: $if f$trnlnm("inf","lnm$process",,"SUPERVISOR") .nes. "" then close inf
! 2039: $if f$trnlnm("tf1","lnm$process",,"SUPERVISOR") .nes. "" then close tf1
! 2040: $if f$trnlnm("tf2","lnm$process",,"SUPERVISOR") .nes. "" then close tf2
! 2041: $if f$trnlnm("tfcv","lnm$process",,"SUPERVISOR") .nes. "" then close tfcv
! 2042: $if f$type(tfile1) .eqs. "STRING"
! 2043: $then
! 2044: $ if f$search(tfile1) .nes. "" then delete 'tfile1';*
! 2045: $endif
! 2046: $if f$type(dchfile) .eqs. "STRING"
! 2047: $then
! 2048: $ if f$search(dchfile) .nes. "" then delete 'dchfile';*
! 2049: $endif
! 2050: $if f$type(starhfile) .eqs. "STRING"
! 2051: $then
! 2052: $ if f$search(starhfile) .nes. "" then delete 'starhfile';*
! 2053: $endif
! 2054: $if f$type(configure_script) .eqs. "STRING"
! 2055: $then
! 2056: $ if f$search(configure_script) .nes. "" then delete 'configure_script';*
! 2057: $endif
! 2058: $exit 'status'
! 2059: $!
! 2060: $!
! 2061: $control_y:
! 2062: $ status = ss_control_y
! 2063: $ goto all_exit
! 2064: $!
! 2065: $!
! 2066: $!
! 2067: $! Gosub to write a new config_vms.h
! 2068: $!-----------------------------------
! 2069: $write_config_vms:
! 2070: $outfile = "sys$disk:[]config_vms.h"
! 2071: $create 'outfile'
! 2072: $open/append tf 'outfile'
! 2073: $write tf "/* File: config_vms.h"
! 2074: $write tf "**"
! 2075: $write tf "** This file contains the manual edits needed for porting"
! 2076: $!write tf "** the ''proj_name' package to OpenVMS.
! 2077: $write tf "**"
! 2078: $write tf "** Edit this file as needed. The procedure that automatically"
! 2079: $write tf "** generated this header stub will not overwrite or make any"
! 2080: $write tf "** changes to this file."
! 2081: $write tf "**"
! 2082: $write tf -
! 2083: "** ", datetime, tab, username, tab, "Generated by ''my_proc_file'"
! 2084: $write tf "**"
! 2085: $write tf -
! 2086: "**========================================================================*/"
! 2087: $write tf ""
! 2088: $close tf
! 2089: $return
! 2090: $!
! 2091: $! gosub to write out a documentation header for config.h
! 2092: $!----------------------------------------------------------------
! 2093: $write_config_h_header:
! 2094: $outfile = "sys$disk:[]config.h"
! 2095: $create 'outfile'
! 2096: $open/append tf 'outfile'
! 2097: $write tf "#ifndef CONFIG_H"
! 2098: $write tf "#define CONFIG_H"
! 2099: $write tf "/* File: config.h"
! 2100: $write tf "**"
! 2101: $write tf -
! 2102: "** This file contains the options needed for porting "
! 2103: $write tf "** the project on a VMS system."
! 2104: $write tf "**"
! 2105: $write tf "** Try not to make any edits to this file, as it is"
! 2106: $write tf "** automagically generated."
! 2107: $write tf "**"
! 2108: $write tf "** Manual edits should be made to the config_vms.h file."
! 2109: $write tf "**"
! 2110: $write tf -
! 2111: "** ", datetime, tab, username, tab, "Generated by ''my_proc_file'"
! 2112: $write tf "**"
! 2113: $write tf -
! 2114: "**========================================================================*/"
! 2115: $write tf ""
! 2116: $write tf "#if (__CRTL_VER >= 70200000) && !defined (__VAX)"
! 2117: $write tf "#define _LARGEFILE 1"
! 2118: $write tf "#endif"
! 2119: $write tf ""
! 2120: $write tf "#ifndef __VAX"
! 2121: $write tf "#ifdef __CRTL_VER"
! 2122: $write tf "#if __CRTL_VER >= 80200000"
! 2123: $write tf "#define _USE_STD_STAT 1"
! 2124: $write tf "#endif"
! 2125: $write tf "#endif"
! 2126: $write tf "#endif"
! 2127: $write tf ""
! 2128: $!
! 2129: $write tf " /* Allow compiler builtins */"
! 2130: $write tf "/*-------------------------*/"
! 2131: $write tf "#ifdef __DECC_VER"
! 2132: $write tf "#include <non_existant_dir:builtins.h>"
! 2133: $write tf "#endif"
! 2134: $!
! 2135: $write tf ""
! 2136: $return
! 2137: $!
! 2138: $! gosub to write out the tail for config.h and close it
! 2139: $!---------------------------------------------------------
! 2140: $write_config_h_tail:
! 2141: $write tf ""
! 2142: $write tf " /* Include the hand customized settings */"
! 2143: $write tf "/*--------------------------------------*/"
! 2144: $write tf "#include ""config_vms.h"""
! 2145: $write tf ""
! 2146: $write tf "#endif /* CONFIG_H */"
! 2147: $close tf
! 2148: $return
! 2149: $!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>