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>