yuezonghe | 824eb0c | 2024-06-27 02:32:26 -0700 | [diff] [blame] | 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, 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 key2 .eqs. "HAVE_ENGINE_LOAD_BUILTIN_ENGINES" |
| 807 | $ then |
| 808 | $ if f$search("''ssl_header_dir'engine.h") .nes. "" |
| 809 | $ then |
| 810 | $ search_key = key2 - "HAVE_" |
| 811 | $ define/user sys$output nl: |
| 812 | $ define/user sys$error nl: |
| 813 | $ search/output=nl: 'ssl_header_dir'engine.h 'search_key' |
| 814 | $ if '$severity' .eq. 1 |
| 815 | $ then |
| 816 | $ write tf "#ifndef ''key2'" |
| 817 | $ write tf "#define ''key2' 1" |
| 818 | $ write tf "#endif" |
| 819 | $ else |
| 820 | $ write tf "/* #undef ''key2' */" |
| 821 | $ endif |
| 822 | $ else |
| 823 | $ write tf "/* #undef ''key2' */" |
| 824 | $ endif |
| 825 | $ goto cfgh_in_loop1 |
| 826 | $ endif |
| 827 | $! |
| 828 | $ if key2 .eqs. "HAVE_SSL_GET_SHUTDOWN" |
| 829 | $ then |
| 830 | $ if f$search("''ssl_header_dir'ssl.h") .nes. "" |
| 831 | $ then |
| 832 | $ write tf "#ifndef ''key2'" |
| 833 | $ write tf "#define ''key2' 1" |
| 834 | $ write tf "#endif" |
| 835 | $ else |
| 836 | $ write tf "/* #undef ''key2' */" |
| 837 | $ endif |
| 838 | $ goto cfgh_in_loop1 |
| 839 | $ endif |
| 840 | $! |
| 841 | $ if key2b .eqs. "RAND" .and. key2c .nes. "" .and. key2d .eqs. "" |
| 842 | $ then |
| 843 | $ if (key2c .eqs. "EGD") .or. - |
| 844 | (key2c .eqs. "STATUS") .or. - |
| 845 | (key2c .eqs. "SCREEN") |
| 846 | $ then |
| 847 | $ if f$search("''ssl_header_dir'rand.h") .nes. "" |
| 848 | $ then |
| 849 | $ write tf "#ifndef ''key2'" |
| 850 | $ write tf "#define ''key2' 1" |
| 851 | $ write tf "#endif" |
| 852 | $ else |
| 853 | $ write tf "/* #undef ''key2' */" |
| 854 | $ endif |
| 855 | $ endif |
| 856 | $ endif |
| 857 | $! |
| 858 | $ if key2 .eqs. "STRCOLL_BROKEN" |
| 859 | $ then |
| 860 | $ write tf "#ifndef ''key2'" |
| 861 | $ write tf "#define ''key2' 1" |
| 862 | $ write tf "#endif" |
| 863 | $ goto cfgh_in_loop1 |
| 864 | $ endif |
| 865 | $! |
| 866 | $ if key2 .eqs. "DUP_BROKEN" |
| 867 | $ then |
| 868 | $ write tf "#ifndef ''key2'" |
| 869 | $ write tf "#define ''key2' 1" |
| 870 | $ write tf "#endif" |
| 871 | $ goto cfgh_in_loop1 |
| 872 | $ endif |
| 873 | $! |
| 874 | $! This is for a test that getcwd(0,0) works. |
| 875 | $! It does not on VMS. |
| 876 | $!-------------------------- |
| 877 | $ if key2 .eqs. "GETCWD_BROKEN" |
| 878 | $ then |
| 879 | $ write sys$output "" |
| 880 | $ write sys$output - |
| 881 | "%CONFIG_H-I-NONPORT, ''key2' being tested for!" |
| 882 | $ write sys$output - |
| 883 | "-CONFIG_H-I-GETCWD, GETCWD(0,0) does not work on VMS." |
| 884 | $ write sys$output - |
| 885 | "-CONFIG_H-I-GETCWD2, Work around hack probably required." |
| 886 | $ write sys$output - |
| 887 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 888 | $ if update_config_vms |
| 889 | $ then |
| 890 | $ open/append tfcv sys$disk:[]config_vms.h |
| 891 | $ write tfcv "" |
| 892 | $ write tfcv - |
| 893 | "/* Check config.h for use of ''key2' settings */" |
| 894 | $ write tfcv "" |
| 895 | $ close tfcv |
| 896 | $ endif |
| 897 | $ |
| 898 | $ goto cfgh_in_loop1 |
| 899 | $ endif |
| 900 | $! |
| 901 | $ if (key2a .eqs. "HAVE") .or. (key2a .eqs. "STAT") .or. - |
| 902 | (key2 .eqs. "ENABLE_IPV6") .or. (key2b .eqs. "LDAP") |
| 903 | $ then |
| 904 | $! |
| 905 | $! Process extra underscores |
| 906 | $!------------------------------------ |
| 907 | $ if f$locate("HAVE___", key2) .lt. key2_len |
| 908 | $ then |
| 909 | $ key2b = "__" + key2d |
| 910 | $ key2d = "" |
| 911 | $ double_under = 1 |
| 912 | $ else |
| 913 | $ if f$locate("HAVE__", key2) .lt. key2_len |
| 914 | $ then |
| 915 | $ key2b = "_" + key2c |
| 916 | $ key2c = "" |
| 917 | $ double_under = 1 |
| 918 | $ endif |
| 919 | $ endif |
| 920 | $! |
| 921 | $ if (key2_h .eqs. "_H") .or. (key2 .eqs. "ENABLE_IPV6") .or. - |
| 922 | (key2b .eqs. "LDAP") |
| 923 | $ then |
| 924 | $! |
| 925 | $! Looking for a header file |
| 926 | $!--------------------------------------- |
| 927 | $ headf = key2b |
| 928 | $ if key2c .nes. "" then headf = headf + "_" + key2c |
| 929 | $ if key2d .nes. "" then headf = headf + "_" + key2d |
| 930 | $! |
| 931 | $! (key2b .eqs. "READLINE") |
| 932 | $! |
| 933 | $! Some special parsing |
| 934 | $!------------------------------------------ |
| 935 | $ if (key2b .eqs. "SYS") .or. (key2b .eqs. "ARPA") .or. - |
| 936 | (key2b .eqs. "NET") .or. (key2b .eqs. "NETINET") |
| 937 | $ then |
| 938 | $ if key2c .nes. "" |
| 939 | $ then |
| 940 | $ headf = key2c |
| 941 | $ if key2d .nes. "" then headf = key2c + "_" + key2d |
| 942 | $ endif |
| 943 | $ endif |
| 944 | $! |
| 945 | $! And of course what's life with out some special cases |
| 946 | $!-------------------------------------------------------------------- |
| 947 | $ if key2 .eqs. "ENABLE_IPV6" |
| 948 | $ then |
| 949 | $ headf = "in6" |
| 950 | $ endif |
| 951 | $! |
| 952 | $ if key2b .eqs. "LDAP" |
| 953 | $ then |
| 954 | $ if (key2 .eqs. "HAVE_LDAP_SSL") .or. - |
| 955 | (key2 .eqs. "HAVE_LDAP_URL_PARSE") |
| 956 | $ then |
| 957 | $ headf = "ldap" |
| 958 | $ endif |
| 959 | $ endif |
| 960 | $! |
| 961 | $! |
| 962 | $ if key2b .eqs. "FILE" |
| 963 | $ then |
| 964 | $ write sys$output "" |
| 965 | $ write sys$output - |
| 966 | "%CONFIG_H-I-NONPORT, ''key2' being asked for!" |
| 967 | $ write sys$output - |
| 968 | "-CONFIG_H-I-FILE_OLD, file.h will not be configured as is obsolete!" |
| 969 | $ write sys$output - |
| 970 | "-CONFIG_H_I-FCNTL_NEW, "Expecting fcntl.h to be configured instead!" |
| 971 | $ write sys$output - |
| 972 | "-CONFIG_H_I-FCNTL_CHK, "Unable to verify at this time!" |
| 973 | $ write sys$output - |
| 974 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 975 | $! |
| 976 | $ if update_config_vms |
| 977 | $ then |
| 978 | $ open/append tfcv sys$disk:[]config_vms.h |
| 979 | $ write tfcv "" |
| 980 | $ write tfcv - |
| 981 | "/* Check config.h for use of fcntl.h instead of file.h */" |
| 982 | $ write tfcv "" |
| 983 | $ close tfcv |
| 984 | $ endif |
| 985 | $ endif |
| 986 | $! |
| 987 | $! Now look it up in the DEC C RTL |
| 988 | $!--------------------------------------------- |
| 989 | $ define/user sys$output nl: |
| 990 | $ define/user sys$error nl: |
| 991 | $ search/output=nl: 'dchfile' |'headf'|/exact |
| 992 | $ if '$severity' .eq. 1 |
| 993 | $ then |
| 994 | $ if key64 then write tf "#ifndef __VAX" |
| 995 | $ write tf "#ifndef ''key2'" |
| 996 | $ write tf "#define ''key2' 1" |
| 997 | $if p2 .nes. "" then write sys$output "''dchfile' - #define ''key2' 1" |
| 998 | $ write tf "#endif" |
| 999 | $ if key64 then write tf "#endif" |
| 1000 | $set nover |
| 1001 | $ goto cfgh_in_loop1 |
| 1002 | $ endif |
| 1003 | $! |
| 1004 | $! |
| 1005 | $! Now look it up in the DEC C STARLET_C |
| 1006 | $!--------------------------------------------- |
| 1007 | $ define/user sys$output nl: |
| 1008 | $ define/user sys$error nl: |
| 1009 | $ search/output=nl: 'starhfile' |'headf'|/exact |
| 1010 | $ if '$severity' .eq. 1 |
| 1011 | $ then |
| 1012 | $ if key64 then write tf "#ifndef __VAX" |
| 1013 | $ write tf "#ifndef ''key2'" |
| 1014 | $ write tf "#define ''key2' 1" |
| 1015 | $if p2 .nes. "" then write sys$output "''starfile' - #define ''key2' 1" |
| 1016 | $ write tf "#endif" |
| 1017 | $ if key64 then write tf "#endif" |
| 1018 | $set nover |
| 1019 | $ goto cfgh_in_loop1 |
| 1020 | $ endif |
| 1021 | $! |
| 1022 | $! Now look for OPENSSL headers |
| 1023 | $!--------------------------------------------------------- |
| 1024 | $ if key2b .eqs. "OPENSSL" |
| 1025 | $ then |
| 1026 | $ headf = headf - "OPENSSL_" |
| 1027 | $ header = f$search("''ssl_header_dir'''headf'.h") |
| 1028 | $ if header .nes. "" |
| 1029 | $ then |
| 1030 | $ write tf "#ifndef ''key2'" |
| 1031 | $ write tf "#define ''key2' 1" |
| 1032 | $ write tf "#endif" |
| 1033 | $set nover |
| 1034 | $ goto cfgh_in_loop1 |
| 1035 | $ endif |
| 1036 | $ endif |
| 1037 | $! |
| 1038 | $! Now look for Kerberos |
| 1039 | $!------------------------------------------------------------ |
| 1040 | $ if key2b .eqs. "GSSAPI" |
| 1041 | $ then |
| 1042 | $ header_dir = "sys$sysroot:[kerberos.include]" |
| 1043 | $ headf = headf - "GSSAPI_" |
| 1044 | $ header = f$search("''header_dir'''headf'.h") |
| 1045 | $ if header .nes. "" |
| 1046 | $ then |
| 1047 | $ write tf "#ifndef ''key2'" |
| 1048 | $ write tf "#define ''key2' 1" |
| 1049 | $ write tf "#endif" |
| 1050 | $set nover |
| 1051 | $ goto cfgh_in_loop1 |
| 1052 | $ endif |
| 1053 | $ endif |
| 1054 | $! |
| 1055 | $set nover |
| 1056 | $ else |
| 1057 | $! |
| 1058 | $! Looking for a routine or a symbol |
| 1059 | $!------------------------------------------------ |
| 1060 | $ if key2c .eqs. "MACRO" |
| 1061 | $ then |
| 1062 | $ if (key2b .eqs. "FILE") .or. (key2b .eqs. "DATE") - |
| 1063 | .or. (key2b .eqs. "LINE") .or. (key2b .eqs. "TIME") |
| 1064 | $ then |
| 1065 | $ write tf "#ifndef HAVE_''key2b'" |
| 1066 | $ write tf "#define HAVE_''key2b' 1" |
| 1067 | $ write tf "#endif" |
| 1068 | $ endif |
| 1069 | $ goto cfgh_in_loop1 |
| 1070 | $ endif |
| 1071 | $! |
| 1072 | $! Special false tests |
| 1073 | $!------------------------------------- |
| 1074 | $ if double_under |
| 1075 | $ then |
| 1076 | $ if key2b .eqs. "_FCNTL" .or. key2b .eqs. "__FCNTL" |
| 1077 | $ then |
| 1078 | $ write tf "/* #undef HAVE_''key2b' */" |
| 1079 | $ goto cfgh_in_loop1 |
| 1080 | $ endif |
| 1081 | $! |
| 1082 | $ if key2b .eqs. "_STAT" .or. key2b .eqs. "__STAT" |
| 1083 | $ then |
| 1084 | $ write tf "/* #undef HAVE_''key2b' */" |
| 1085 | $ goto cfgh_in_loop1 |
| 1086 | $ endif |
| 1087 | $! |
| 1088 | $ if key2b .eqs. "_READ" .or. key2b .eqs. "__READ" |
| 1089 | $ then |
| 1090 | $ write tf "/* #undef HAVE_''key2b' */" |
| 1091 | $ goto cfgh_in_loop1 |
| 1092 | $ endif |
| 1093 | $ endif |
| 1094 | $! |
| 1095 | $ keysym = key2b |
| 1096 | $ if key2c .nes. "" then keysym = keysym + "_" + key2c |
| 1097 | $ if key2d .nes. "" then keysym = keysym + "_" + key2d |
| 1098 | $ if key2e .nes. "" then keysym = keysym + "_" + key2e |
| 1099 | $! |
| 1100 | $! |
| 1101 | $! Stat structure members |
| 1102 | $!------------------------------------- |
| 1103 | $ if key2b .eqs. "STRUCT" |
| 1104 | $ then |
| 1105 | $ if key2c .eqs. "STAT" .and (key2d .nes. "") |
| 1106 | $ then |
| 1107 | $ key2b = key2b + "_" + key2c + "_" + key2d |
| 1108 | $ key2c = key2e |
| 1109 | $ key2d = "" |
| 1110 | $ key2e = "" |
| 1111 | $ endif |
| 1112 | $ endif |
| 1113 | $ if (key2b .eqs. "ST") .or. (key2b .eqs. "STRUCT_STAT_ST") |
| 1114 | $ then |
| 1115 | $ keysym = "ST" + "_" + key2c |
| 1116 | $ keysym = f$edit(keysym,"LOWERCASE") |
| 1117 | $ endif |
| 1118 | $ if key2a .eqs. "STAT" |
| 1119 | $ then |
| 1120 | $ if (f$locate("STATVFS", key2b) .eq. 0) .and. key2c .eqs. "" |
| 1121 | $ then |
| 1122 | $ keysym = f$edit(key2b, "LOWERCASE") |
| 1123 | $ endif |
| 1124 | $!$ if (key2b .eqs. "STATVFS" .or. key2b .eqs. "STATFS2" - |
| 1125 | $! .or. key2b .eqs. "STATFS3") .and. key2c .nes. "" |
| 1126 | $! |
| 1127 | $ if (key2b .eqs. "STATVFS") .and. key2c .nes. "" |
| 1128 | $ then |
| 1129 | $! Should really verify that the structure |
| 1130 | $! named by key2b actually exists first. |
| 1131 | $!------------------------------------------------------------ |
| 1132 | $! |
| 1133 | $! Statvfs structure members |
| 1134 | $!------------------------------------------------- |
| 1135 | $ keysym = "f_" + f$edit(key2c,"LOWERCASE") |
| 1136 | $ endif |
| 1137 | $ endif |
| 1138 | $! |
| 1139 | $! UTMPX structure members |
| 1140 | $!-------------------------------------- |
| 1141 | $ if key2b .eqs. "UT" .and. key2c .eqs. "UT" |
| 1142 | $ then |
| 1143 | $ keysym = "ut_" + f$edit(key2d,"LOWERCASE") |
| 1144 | $ endif |
| 1145 | $! |
| 1146 | $ if f$locate("MMAP",key2) .lt. key2_len |
| 1147 | $ then |
| 1148 | $ write sys$output "" |
| 1149 | $ write sys$output - |
| 1150 | "%CONFIG_H-I-NONPORT, ''key2' being asked for!" |
| 1151 | $ write sys$output - |
| 1152 | "-CONFIG_H-I-MMAP, MMAP operations only work on STREAM and BINARY files!" |
| 1153 | $ write sys$output - |
| 1154 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 1155 | $ if update_config_vms |
| 1156 | $ then |
| 1157 | $ open/append tfcv sys$disk:[]config_vms.h |
| 1158 | $ write tfcv "" |
| 1159 | $ write tfcv - |
| 1160 | "/* Check config.h for use of ''key2' settings */" |
| 1161 | $ write tfcv "" |
| 1162 | $ close tfcv |
| 1163 | $ endif |
| 1164 | $ endif |
| 1165 | $! |
| 1166 | $! |
| 1167 | $ if keysym .eqs. "CRYPT" |
| 1168 | $ then |
| 1169 | $ write sys$output "" |
| 1170 | $ write sys$output - |
| 1171 | "%CONFIG_H-I-NONPORT, ''key2' being asked for!" |
| 1172 | $ write sys$output - |
| 1173 | "-CONFIG_H-I-CRYPT, CRYPT operations on the VMS SYSUAF may not work!" |
| 1174 | $ write sys$output - |
| 1175 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 1176 | $ if update_config_vms |
| 1177 | $ then |
| 1178 | $ open/append tfcv sys$disk:[]config_vms.h |
| 1179 | $ write tfcv "" |
| 1180 | $ write tfcv - |
| 1181 | "/* Check config.h for use of ''keysym' */" |
| 1182 | $ write tfcv "" |
| 1183 | $ close tfcv |
| 1184 | $ endif |
| 1185 | $ endif |
| 1186 | $! |
| 1187 | $! |
| 1188 | $ if keysym .eqs. "EXECL" |
| 1189 | $ then |
| 1190 | $ write sys$output "" |
| 1191 | $ write sys$output - |
| 1192 | "%CONFIG_H-I-NONPORT, ''key2' being asked for!" |
| 1193 | $ write sys$output - |
| 1194 | "-CONFIG_H-I-EXCEL, EXECL configured, Will probably not work." |
| 1195 | $ write sys$output - |
| 1196 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 1197 | $ if update_config_vms |
| 1198 | $ then |
| 1199 | $ open/append tfcv sys$disk:[]config_vms.h |
| 1200 | $ write tfcv "" |
| 1201 | $ write tfcv - |
| 1202 | "/* Check config.h for use of ''keysym' */" |
| 1203 | $ write tfcv "" |
| 1204 | $ close tfcv |
| 1205 | $ endif |
| 1206 | $ endif |
| 1207 | $! |
| 1208 | $! |
| 1209 | $! Process if cpp supports ANSI-C stringizing '#' operator |
| 1210 | $!----------------------------------------------------------------------- |
| 1211 | $ if keysym .eqs. "STRINGIZE" |
| 1212 | $ then |
| 1213 | $ write tf "#ifndef HAVE_STRINGIZE" |
| 1214 | $ write tf "#define HAVE_STRINGSIZE 1" |
| 1215 | $ write tf "#endif" |
| 1216 | $ goto cfgh_in_loop1 |
| 1217 | $ endif |
| 1218 | $! |
| 1219 | $ if keysym .eqs. "VOLATILE" |
| 1220 | $ then |
| 1221 | $ write tf "#ifndef HAVE_VOLATILE" |
| 1222 | $ write tf "#define HAVE_VOLATILE 1" |
| 1223 | $ write tf "#endif" |
| 1224 | $ goto cfgh_in_loop1 |
| 1225 | $ endif |
| 1226 | $! |
| 1227 | $ if keysym .eqs. "ALLOCA" |
| 1228 | $ then |
| 1229 | $ write tf "#ifndef HAVE_ALLOCA" |
| 1230 | $ write tf "#define HAVE_ALLOCA 1" |
| 1231 | $ write tf "#endif" |
| 1232 | $ goto cfgh_in_loop1 |
| 1233 | $ endif |
| 1234 | $! |
| 1235 | $ if keysym .eqs. "ERRNO_DECL" |
| 1236 | $ then |
| 1237 | $ write tf "#ifndef HAVE_ERRNO_DECL" |
| 1238 | $ write tf "#define HAVE_ERRNO_DECL 1" |
| 1239 | $ write tf "#endif" |
| 1240 | $ goto cfgh_in_loop1 |
| 1241 | $ endif |
| 1242 | $! |
| 1243 | $ if keysym .eqs. "LONGLONG" |
| 1244 | $ then |
| 1245 | $ write tf "#ifndef __VAX" |
| 1246 | $ write tf "#pragma message disable longlongtype" |
| 1247 | $ write tf "#ifndef HAVE_LONGLONG" |
| 1248 | $ write tf "#define HAVE_LONGLONG 1" |
| 1249 | $ write tf "#endif" |
| 1250 | $ write tf "#endif" |
| 1251 | $ goto cfgh_in_loop1 |
| 1252 | $ endif |
| 1253 | $! |
| 1254 | $! May need to test compiler version |
| 1255 | $!----------------------------------------------- |
| 1256 | $ if keysym .eqs. "LONG_LONG" |
| 1257 | $ then |
| 1258 | $ write tf "#ifndef __VAX" |
| 1259 | $ write tf "#pragma message disable longlongtype" |
| 1260 | $ write tf "#ifndef HAVE_LONG_LONG" |
| 1261 | $ write tf "#define HAVE_LONG_LONG 1" |
| 1262 | $ write tf "#endif" |
| 1263 | $ write tf "#endif" |
| 1264 | $ goto cfgh_in_loop1 |
| 1265 | $ endif |
| 1266 | $! |
| 1267 | $! May need to test compiler version |
| 1268 | $!----------------------------------------------- |
| 1269 | $ if keysym .eqs. "UNSIGNED_LONG_LONG" |
| 1270 | $ then |
| 1271 | $ write tf "#ifndef __VAX" |
| 1272 | $ write tf "#pragma message disable longlongtype" |
| 1273 | $ write tf "#ifndef HAVE_UNSIGNED_LONG_LONG" |
| 1274 | $ write tf "#define HAVE_UNSIGNED_LONG_LONG 1" |
| 1275 | $ write tf "#endif" |
| 1276 | $ write tf "#endif" |
| 1277 | $ goto cfgh_in_loop1 |
| 1278 | $ endif |
| 1279 | $! |
| 1280 | $! May need to test compiler version |
| 1281 | $!----------------------------------------------- |
| 1282 | $ if keysym .eqs. "UNSIGNED_LONG_LONG_INT" |
| 1283 | $ then |
| 1284 | $ write tf "#ifndef __VAX" |
| 1285 | $ write tf "#pragma message disable longlongtype" |
| 1286 | $ write tf "#ifndef HAVE_UNSIGNED_LONG_LONG_INT" |
| 1287 | $ write tf "#define HAVE_UNSIGNED_LONG_LONG_INT 1" |
| 1288 | $ write tf "#endif" |
| 1289 | $ write tf "#endif" |
| 1290 | $ goto cfgh_in_loop1 |
| 1291 | $ endif |
| 1292 | $! |
| 1293 | $! May need to test compiler version |
| 1294 | $!----------------------------------------------- |
| 1295 | $ if keysym .eqs. "LONG_DOUBLE" |
| 1296 | $ then |
| 1297 | $ write tf "#ifndef __VAX" |
| 1298 | $ write tf "#pragma message disable longlongtype" |
| 1299 | $ write tf "#ifndef HAVE_LONG_DOUBLE" |
| 1300 | $ write tf "#define HAVE_LONG_DOUBLE 1" |
| 1301 | $ write tf "#endif" |
| 1302 | $ write tf "#endif" |
| 1303 | $ goto cfgh_in_loop1 |
| 1304 | $ endif |
| 1305 | $! |
| 1306 | $ if keysym .eqs. "FCNTL_LOCK" |
| 1307 | $ then |
| 1308 | $ write sys$output - |
| 1309 | "%CONFIG_H-I-NONPORT, ''key2' being asked for! |
| 1310 | $ write sys$output - |
| 1311 | "-CONFIG_H-I-REVIEW, Manual Code review required!" |
| 1312 | $ goto cfgh_in_loop1 |
| 1313 | $ endif |
| 1314 | $! |
| 1315 | $! |
| 1316 | $! These libraries are provided by the DEC C RTL |
| 1317 | $!------------------------------------------------------------- |
| 1318 | $ if keysym .eqs. "LIBINET" .or. keysym .eqs. "LIBSOCKET" |
| 1319 | $ then |
| 1320 | $ write tf "#ifndef HAVE_''keysym'" |
| 1321 | $ write tf "#define HAVE_''keysym' 1" |
| 1322 | $if p2 .nes. "" then write sys$output "''decc_shr' #define ''keysym' 1" |
| 1323 | $ write tf "#endif |
| 1324 | $ goto cfgh_in_loop1 |
| 1325 | $ endif |
| 1326 | $! |
| 1327 | $ if keysym .eqs. "HERRNO" then keysym = "h_errno" |
| 1328 | $ if keysym .eqs. "UTIMBUF" then keysym = "utimbuf" |
| 1329 | $ if key2c .eqs. "STRUCT" |
| 1330 | $ then |
| 1331 | $ keysym = f$edit(key2d,"LOWERCASE") |
| 1332 | $ else |
| 1333 | $ if key2_h .eqs. "_T" |
| 1334 | $ then |
| 1335 | $ if key2_t .eqs. "_TYPE" |
| 1336 | $ then |
| 1337 | $ keysym = f$extract(0, key2_len - 5, key2) - "HAVE_" |
| 1338 | $ endif |
| 1339 | $ keysym = f$edit(keysym,"LOWERCASE") |
| 1340 | $ endif |
| 1341 | $ endif |
| 1342 | $! |
| 1343 | $! Check the DEC C RTL shared image first |
| 1344 | $!------------------------------------------------------ |
| 1345 | $ if f$search(tfile1) .nes. "" then delete 'tfile1';* |
| 1346 | $ define/user sys$output nl: |
| 1347 | $ define/user sys$error nl: |
| 1348 | $ search/format=nonull/out='tfile1' 'decc_shr' 'keysym' |
| 1349 | $ if '$severity' .eq. 1 |
| 1350 | $ then |
| 1351 | $! |
| 1352 | $! Not documented, but from observation |
| 1353 | $!------------------------------------------------------ |
| 1354 | $ define/user sys$output nl: |
| 1355 | $ define/user sys$error nl: |
| 1356 | $ if arch_type .eq. 3 |
| 1357 | $ then |
| 1358 | $ keyterm = "''keysym'<SOH>" |
| 1359 | $ else |
| 1360 | $ if arch_type .eq. 2 |
| 1361 | $ then |
| 1362 | $ keyterm = "''keysym'<BS>" |
| 1363 | $ else |
| 1364 | $ keyterm = "''keysym'<STX>" |
| 1365 | $ endif |
| 1366 | $ endif |
| 1367 | $ search/out=nl: 'tfile1' - |
| 1368 | "$''keyterm'","$g''keyterm'","$__utc_''keyterm'",- |
| 1369 | "$__utctz_''keyterm'","$__bsd44_''keyterm'","$bsd_''keyterm'",- |
| 1370 | "$''keysym'decc$","$G''keysym'decc$","$GX''keyterm'" |
| 1371 | $ severity = '$severity' |
| 1372 | $! |
| 1373 | $! |
| 1374 | $! Of course the 64 bit stuff is different |
| 1375 | $!--------------------------------------------------------- |
| 1376 | $ if severity .ne. 1 .and. key64 |
| 1377 | $ then |
| 1378 | $ define/user sys$output nl: |
| 1379 | $ define/user sys$error nl: |
| 1380 | $ search/out=nl: 'tfile1' "$_''keyterm'" |
| 1381 | $! search/out 'tfile1' "$_''keyterm'" |
| 1382 | $ severity = '$severity' |
| 1383 | $ endif |
| 1384 | $! |
| 1385 | $! Unix compatability routines |
| 1386 | $!--------------------------------------------- |
| 1387 | $ if severity .ne. 1 |
| 1388 | $ then |
| 1389 | $ define/user sys$output nl: |
| 1390 | $ define/user sys$error nl: |
| 1391 | $ search/out=nl: 'tfile1' - |
| 1392 | "$__unix_''keyterm'","$__vms_''keyterm'","$_posix_''keyterm'" |
| 1393 | $ severity = '$severity' |
| 1394 | $ endif |
| 1395 | $! |
| 1396 | $! Show the result of the search |
| 1397 | $!------------------------------------------------ |
| 1398 | $ if 'severity' .eq. 1 |
| 1399 | $ then |
| 1400 | $ if key64 then write tf "#ifndef __VAX" |
| 1401 | $ write tf "#ifndef ''key2'" |
| 1402 | $ write tf "#define ''key2' 1" |
| 1403 | $if p2 .nes. "" then write sys$output "''decc_shr' #define ''key2' 1" |
| 1404 | $ write tf "#endif" |
| 1405 | $ if key64 then write tf "#endif" |
| 1406 | $ goto cfgh_in_loop1 |
| 1407 | $ endif |
| 1408 | $ endif |
| 1409 | $ if f$search(tfile1) .nes. "" then delete 'tfile1';* |
| 1410 | $! |
| 1411 | $! Check the DECC Header files next |
| 1412 | $!---------------------------------------------- |
| 1413 | $ define/user sys$output nl: |
| 1414 | $ define/user sys$error nl: |
| 1415 | $ search/out=nl: 'decc_rtldef' - |
| 1416 | "''keysym';", "''keysym'[", "struct ''keysym'"/exact |
| 1417 | $ severity = '$severity' |
| 1418 | $ if severity .eq. 1 |
| 1419 | $ then |
| 1420 | $ if key64 then write tf "#ifndef __VAX" |
| 1421 | $ write tf "#ifndef ''key2'" |
| 1422 | $ write tf "#define ''key2' 1" |
| 1423 | $if p2 .nes. "" then write sys$output "''decc_rtldef' #define ''key2' 1" |
| 1424 | $ write tf "#endif" |
| 1425 | $ if key64 then write tf "#endif" |
| 1426 | $ goto cfgh_in_loop1 |
| 1427 | $ endif |
| 1428 | $! |
| 1429 | $! Check kerberos |
| 1430 | $!-------------------------------------------- |
| 1431 | $ if f$search("SYS$SYSROOT:[kerberos]include.dir") .nes. "" |
| 1432 | $ then |
| 1433 | $ test_mit = "SYS$SYSROOT:[kerberos.include]gssapi_krb5.h" |
| 1434 | $ if (key2 .eqs. "HAVE_GSSAPI") |
| 1435 | $ then |
| 1436 | $ write tf "#ifndef ''key2'" |
| 1437 | $ write tf "#define ''key2' 1" |
| 1438 | $ write tf "#endif" |
| 1439 | $ goto cfgh_in_loop1 |
| 1440 | $ endif |
| 1441 | $! |
| 1442 | $! This is really do we have the newer MIT Kerberos |
| 1443 | $!---------------------------------------------------------------------- |
| 1444 | $ if (key2 .eqs. "HAVE_GSSMIT") |
| 1445 | $ then |
| 1446 | $ if f$search(test_mit) .nes. "" |
| 1447 | $ then |
| 1448 | $ write tf "#ifndef ''key2'" |
| 1449 | $ write tf "#define ''key2' 1" |
| 1450 | $ else |
| 1451 | $ write tf "#ifdef ''key2'" |
| 1452 | $ write tf "#undef ''key2'" |
| 1453 | $ endif |
| 1454 | $ write tf "#endif" |
| 1455 | $ goto cfgh_in_loop1 |
| 1456 | $ endif |
| 1457 | $! |
| 1458 | $! Older MIT looks like Heimdal |
| 1459 | $!------------------------------------------------ |
| 1460 | $ if (key2 .eqs. "HAVE_HEIMDAL") |
| 1461 | $ then |
| 1462 | $ if f$search(test_mit) .eqs. "" |
| 1463 | $ then |
| 1464 | $ write tf "#ifndef ''key2'" |
| 1465 | $ write tf "#define ''key2' 1" |
| 1466 | $ else |
| 1467 | $ write tf "#ifdef ''key2'" |
| 1468 | $ write tf "#undef ''key2'" |
| 1469 | $ endif |
| 1470 | $ write tf "#endif" |
| 1471 | $ goto cfgh_in_loop1 |
| 1472 | $ endif |
| 1473 | $ endif |
| 1474 | $! |
| 1475 | $ endif |
| 1476 | $ write tf "/* ", xline, " */" |
| 1477 | $ goto cfgh_in_loop1 |
| 1478 | $ endif |
| 1479 | $! |
| 1480 | $! |
| 1481 | $! Process SIZEOF directives found in SAMBA and others |
| 1482 | $!---------------------------------------------------------- |
| 1483 | $ if key2a .eqs. "SIZEOF" |
| 1484 | $ then |
| 1485 | $ if key2b .eqs. "INO" .and. key2_h .eqs. "_T" |
| 1486 | $ then |
| 1487 | $ write tf "#ifndef SIZEOF_INO_T" |
| 1488 | $ write tf "#if !__USING_STD_STAT |
| 1489 | $ write tf "#define SIZEOF_INO_T 6" |
| 1490 | $ write tf "#else |
| 1491 | $ write tf "#define SIZEOF_INO_T 8" |
| 1492 | $ write tf "#endif |
| 1493 | $ write tf "#endif" |
| 1494 | $ goto cfgh_in_loop1 |
| 1495 | $ endif |
| 1496 | $ if key2b .eqs. "INTMAX" .and. key2_h .eqs. "_T" |
| 1497 | $ then |
| 1498 | $ write tf "#ifndef SIZEOF_INTMAX_T" |
| 1499 | $ write tf "#ifdef __VAX" |
| 1500 | $ write tf "#define SIZEOF_INTMAX_T 4" |
| 1501 | $ write tf "#else" |
| 1502 | $ write tf "#define SIZEOF_INTMAX_T 8" |
| 1503 | $ write tf "#endif" |
| 1504 | $ write tf "#endif" |
| 1505 | $ goto cfgh_in_loop1 |
| 1506 | $ endif |
| 1507 | $ if key2b .eqs. "OFF" .and. key2_h .eqs. "_T" |
| 1508 | $ then |
| 1509 | $ write tf "#ifndef SIZEOF_OFF_T" |
| 1510 | $ write tf "#if __USE_OFF64_T" |
| 1511 | $ write tf "#define SIZEOF_OFF_T 8" |
| 1512 | $ write tf "#else" |
| 1513 | $ write tf "#define SIZEOF_OFF_T 4" |
| 1514 | $ write tf "#endif" |
| 1515 | $ write tf "#endif" |
| 1516 | $ goto cfgh_in_loop1 |
| 1517 | $ endif |
| 1518 | $ if key2b .eqs. "CHAR" .and. key2_h .eqs. "_P" |
| 1519 | $ then |
| 1520 | $ write tf "#ifndef SIZEOF_CHAR_P" |
| 1521 | $ write tf "#if __INITIAL_POINTER_SIZE == 64" |
| 1522 | $ write tf "#define SIZEOF_CHAR_P 8" |
| 1523 | $ write tf "#else" |
| 1524 | $ write tf "#define SIZEOF_CHAR_P 4" |
| 1525 | $ write tf "#endif" |
| 1526 | $ goto cfgh_in_loop1 |
| 1527 | $ endif |
| 1528 | $ if key2b .eqs. "VOIDP" |
| 1529 | $ then |
| 1530 | $ write tf "#ifndef SIZEOF_VOIDP" |
| 1531 | $ write tf "#if __INITIAL_POINTER_SIZE == 64" |
| 1532 | $ write tf "#define SIZEOF_VOIDP 8" |
| 1533 | $ write tf "#else" |
| 1534 | $ write tf "#define SIZEOF_VOIDP 4" |
| 1535 | $ write tf "#endif" |
| 1536 | $ write tf "#endif" |
| 1537 | $ goto cfgh_in_loop1 |
| 1538 | $ endif |
| 1539 | $ if key2b .eqs. "INT" |
| 1540 | $ then |
| 1541 | $ write tf "#ifndef SIZEOF_INT" |
| 1542 | $ write tf "#define SIZEOF_INT 4" |
| 1543 | $ write tf "#endif" |
| 1544 | $ goto cfgh_in_loop1 |
| 1545 | $ endif |
| 1546 | $ if key2b .eqs. "SIZE" .and. key2_h .eqs. "_T" |
| 1547 | $ then |
| 1548 | $ write tf "#ifndef SIZEOF_SIZE_T" |
| 1549 | $ write tf "#define SIZEOF_SIZE_T 4" |
| 1550 | $ write tf "#endif" |
| 1551 | $ goto cfgh_in_loop1 |
| 1552 | $ endif |
| 1553 | $ if key2b .eqs. "TIME" .and. key2_h .eqs. "_T" |
| 1554 | $ then |
| 1555 | $ write tf "#ifndef SIZEOF_TIME_T" |
| 1556 | $ write tf "#define SIZEOF_TIME_T 4" |
| 1557 | $ write tf "#endif" |
| 1558 | $ goto cfgh_in_loop1 |
| 1559 | $ endif |
| 1560 | $ if key2b .eqs. "DOUBLE" |
| 1561 | $ then |
| 1562 | $ write tf "#ifndef SIZEOF_DOUBLE" |
| 1563 | $ write tf "#define SIZEOF_DOUBLE 8" |
| 1564 | $ write tf "#endif" |
| 1565 | $ goto cfgh_in_loop1 |
| 1566 | $ endif |
| 1567 | $ if key2b .eqs. "LONG" |
| 1568 | $ then |
| 1569 | $ if key2c .eqs. "" |
| 1570 | $ then |
| 1571 | $ write tf "#ifndef SIZEOF_LONG" |
| 1572 | $ write tf "#define SIZEOF_LONG 4" |
| 1573 | $ write tf "#endif" |
| 1574 | $ else |
| 1575 | $ write tf "#ifndef SIZEOF_LONG_LONG" |
| 1576 | $ write tf "#ifndef __VAX" |
| 1577 | $ write tf "#define SIZEOF_LONG_LONG 8" |
| 1578 | $ write tf "#endif" |
| 1579 | $ write tf "#endif" |
| 1580 | $ endif |
| 1581 | $ goto cfgh_in_loop1 |
| 1582 | $ endif |
| 1583 | $ if key2b .eqs. "SHORT" |
| 1584 | $ then |
| 1585 | $ write tf "#ifndef SIZEOF_SHORT" |
| 1586 | $ write tf "#define SIZEOF_SHORT 2" |
| 1587 | $ write tf "#endif" |
| 1588 | $ goto cfgh_in_loop1 |
| 1589 | $ endif |
| 1590 | $ write tf "/* ", xline, " */" |
| 1591 | $ goto cfgh_in_loop1 |
| 1592 | $ endif |
| 1593 | $! |
| 1594 | $! Process NEED directives |
| 1595 | $!------------------------------- |
| 1596 | $ if key2a .eqs. "NEED" |
| 1597 | $ then |
| 1598 | $ if key2b .eqs. "STRINGS" .and. key2_h .eqs. "_H" |
| 1599 | $ then |
| 1600 | $ write tf "#ifndef NEED_STRINGS_H" |
| 1601 | $ write tf "#define NEED_STRINGS_H 1" |
| 1602 | $ write tf "#endif" |
| 1603 | $ goto cfgh_in_loop1 |
| 1604 | $ endif |
| 1605 | $ write tf "/* ", xline, " */" |
| 1606 | $ goto cfgh_in_loop1 |
| 1607 | $ endif |
| 1608 | $! |
| 1609 | $! Process GETHOSTNAME directives |
| 1610 | $!------------------------------------- |
| 1611 | $ if key2 .eqs. "GETHOSTNAME_TYPE_ARG2" |
| 1612 | $ then |
| 1613 | $ write tf "#ifndef ''key2'" |
| 1614 | $ write tf "#ifdef _DECC_V4_SOURCE" |
| 1615 | $ write tf "#define ''key2' int" |
| 1616 | $ write tf "#else" |
| 1617 | $ write tf "#define ''key2' size_t" |
| 1618 | $ write tf "#endif" |
| 1619 | $ write tf "#endif" |
| 1620 | $ goto cfgh_in_loop1 |
| 1621 | $ endif |
| 1622 | $! |
| 1623 | $! Process GETNAMEINFO directives |
| 1624 | $!------------------------------------- |
| 1625 | $ if key2a .eqs. "GETNAMEINFO" |
| 1626 | $ then |
| 1627 | $ if key2 .eqs. "GETNAMEINFO_QUAL_ARG1" |
| 1628 | $ then |
| 1629 | $ write tf "#ifndef ''key2'" |
| 1630 | $ write tf "#define ''key2' const" |
| 1631 | $ write tf "#endif" |
| 1632 | $ goto cfgh_in_loop1 |
| 1633 | $ endif |
| 1634 | $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG1" |
| 1635 | $ then |
| 1636 | $ write tf "#ifndef ''key2'" |
| 1637 | $ write tf "#define ''key2' struct sockaddr *" |
| 1638 | $ write tf "#endif" |
| 1639 | $ goto cfgh_in_loop1 |
| 1640 | $ endif |
| 1641 | $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG2" |
| 1642 | $ then |
| 1643 | $ write tf "#ifndef ''key2'" |
| 1644 | $ write tf "#define ''key2' size_t" |
| 1645 | $ write tf "#endif" |
| 1646 | $ goto cfgh_in_loop1 |
| 1647 | $ endif |
| 1648 | $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG46" |
| 1649 | $ then |
| 1650 | $ write tf "#ifndef ''key2'" |
| 1651 | $ write tf "#define ''key2' size_t" |
| 1652 | $ write tf "#endif" |
| 1653 | $ goto cfgh_in_loop1 |
| 1654 | $ endif |
| 1655 | $ if key2 .eqs. "GETNAMEINFO_TYPE_ARG7" |
| 1656 | $ then |
| 1657 | $ write tf "#ifndef ''key2'" |
| 1658 | $ write tf "#define ''key2' int" |
| 1659 | $ write tf "#endif" |
| 1660 | $ goto cfgh_in_loop1 |
| 1661 | $ endif |
| 1662 | $ endif |
| 1663 | $! |
| 1664 | $! Process RECV directives |
| 1665 | $!------------------------------------- |
| 1666 | $ if key2a .eqs. "RECV" |
| 1667 | $ then |
| 1668 | $ if key2 .eqs. "RECV_TYPE_ARG1" |
| 1669 | $ then |
| 1670 | $ write tf "#ifndef ''key2'" |
| 1671 | $ write tf "#define ''key2' int" |
| 1672 | $ write tf "#endif" |
| 1673 | $ goto cfgh_in_loop1 |
| 1674 | $ endif |
| 1675 | $ if key2 .eqs. "RECV_TYPE_ARG2" |
| 1676 | $ then |
| 1677 | $ write tf "#ifndef ''key2'" |
| 1678 | $ write tf "#define ''key2' void *" |
| 1679 | $ write tf "#endif" |
| 1680 | $ goto cfgh_in_loop1 |
| 1681 | $ endif |
| 1682 | $ if key2 .eqs. "RECV_TYPE_ARG3" |
| 1683 | $ then |
| 1684 | $ write tf "#ifndef ''key2'" |
| 1685 | $ write tf "#define ''key2' size_t" |
| 1686 | $ write tf "#endif" |
| 1687 | $ goto cfgh_in_loop1 |
| 1688 | $ endif |
| 1689 | $ if key2 .eqs. "RECV_TYPE_ARG4" |
| 1690 | $ then |
| 1691 | $ write tf "#ifndef ''key2'" |
| 1692 | $ write tf "#define ''key2' int" |
| 1693 | $ write tf "#endif" |
| 1694 | $ goto cfgh_in_loop1 |
| 1695 | $ endif |
| 1696 | $ if key2 .eqs. "RECV_TYPE_RETV" |
| 1697 | $ then |
| 1698 | $ write tf "#ifndef ''key2'" |
| 1699 | $ write tf "#define ''key2' int" |
| 1700 | $ write tf "#endif" |
| 1701 | $ goto cfgh_in_loop1 |
| 1702 | $ endif |
| 1703 | $ endif |
| 1704 | $! |
| 1705 | $! |
| 1706 | $! Process RECVFROM directives |
| 1707 | $!------------------------------------- |
| 1708 | $ if key2a .eqs. "RECVFROM" |
| 1709 | $ then |
| 1710 | $ if key2 .eqs. "RECVFROM_QUAL_ARG5" |
| 1711 | $ then |
| 1712 | $ write tf "#ifndef ''key2'" |
| 1713 | $ write tf "#define ''key2'" |
| 1714 | $ write tf "#endif" |
| 1715 | $ goto cfgh_in_loop1 |
| 1716 | $ endif |
| 1717 | $ if key2 .eqs. "RECVFROM_TYPE_ARG1" |
| 1718 | $ then |
| 1719 | $ write tf "#ifndef ''key2'" |
| 1720 | $ write tf "#define ''key2' int" |
| 1721 | $ write tf "#endif" |
| 1722 | $ goto cfgh_in_loop1 |
| 1723 | $ endif |
| 1724 | $ if key2 .eqs. "RECVFROM_TYPE_ARG2" |
| 1725 | $ then |
| 1726 | $ write tf "#ifndef ''key2'" |
| 1727 | $ write tf "#define ''key2' void *" |
| 1728 | $ write tf "#endif" |
| 1729 | $ goto cfgh_in_loop1 |
| 1730 | $ endif |
| 1731 | $ if key2 .eqs. "RECVFROM_TYPE_ARG3" |
| 1732 | $ then |
| 1733 | $ write tf "#ifndef ''key2'" |
| 1734 | $ write tf "#define ''key2' size_t" |
| 1735 | $ write tf "#endif" |
| 1736 | $ goto cfgh_in_loop1 |
| 1737 | $ endif |
| 1738 | $ if key2 .eqs. "RECVFROM_TYPE_ARG4" |
| 1739 | $ then |
| 1740 | $ write tf "#ifndef ''key2'" |
| 1741 | $ write tf "#define ''key2' int" |
| 1742 | $ write tf "#endif" |
| 1743 | $ goto cfgh_in_loop1 |
| 1744 | $ endif |
| 1745 | $ if key2 .eqs. "RECVFROM_TYPE_ARG5" |
| 1746 | $ then |
| 1747 | $ write tf "#ifndef ''key2'" |
| 1748 | $ write tf "#define ''key2' struct sockaddr" |
| 1749 | $ write tf "#endif" |
| 1750 | $ goto cfgh_in_loop1 |
| 1751 | $ endif |
| 1752 | $ if key2 .eqs. "RECVFROM_TYPE_ARG6" |
| 1753 | $ then |
| 1754 | $ write tf "#ifndef ''key2'" |
| 1755 | $ write tf "#define ''key2' unsigned int" |
| 1756 | $ write tf "#endif" |
| 1757 | $ goto cfgh_in_loop1 |
| 1758 | $ endif |
| 1759 | $ if key2 .eqs. "RECVFROM_TYPE_RETV" |
| 1760 | $ then |
| 1761 | $ write tf "#ifndef ''key2'" |
| 1762 | $ write tf "#define ''key2' int" |
| 1763 | $ write tf "#endif" |
| 1764 | $ goto cfgh_in_loop1 |
| 1765 | $ endif |
| 1766 | $ endif |
| 1767 | $! |
| 1768 | $! Process SELECT directives |
| 1769 | $!------------------------------------- |
| 1770 | $ if key2a .eqs. "SELECT" |
| 1771 | $ then |
| 1772 | $ if key2 .eqs. "SELECT_QUAL_ARG5" |
| 1773 | $ then |
| 1774 | $ write tf "#ifndef ''key2'" |
| 1775 | $ write tf "#define ''key2' const" |
| 1776 | $ write tf "#endif" |
| 1777 | $ goto cfgh_in_loop1 |
| 1778 | $ endif |
| 1779 | $ if key2 .eqs. "SELECT_TYPE_ARG1" |
| 1780 | $ then |
| 1781 | $ write tf "#ifndef ''key2'" |
| 1782 | $ write tf "#define ''key2' int" |
| 1783 | $ write tf "#endif" |
| 1784 | $ goto cfgh_in_loop1 |
| 1785 | $ endif |
| 1786 | $ if key2 .eqs. "SELECT_TYPE_ARG2" |
| 1787 | $ then |
| 1788 | $ write tf "#ifndef ''key2'" |
| 1789 | $ write tf "#define ''key2' void *" |
| 1790 | $ write tf "#endif" |
| 1791 | $ goto cfgh_in_loop1 |
| 1792 | $ endif |
| 1793 | $ if key2 .eqs. "SELECT_TYPE_ARG234" |
| 1794 | $ then |
| 1795 | $ write tf "#ifndef ''key2'" |
| 1796 | $ write tf "#define ''key2' fd_set *" |
| 1797 | $ write tf "#endif" |
| 1798 | $ goto cfgh_in_loop1 |
| 1799 | $ endif |
| 1800 | $ if key2 .eqs. "SELECT_TYPE_ARG5" |
| 1801 | $ then |
| 1802 | $ write tf "#ifndef ''key2'" |
| 1803 | $ write tf "#define ''key2' struct timeval *" |
| 1804 | $ write tf "#endif" |
| 1805 | $ goto cfgh_in_loop1 |
| 1806 | $ endif |
| 1807 | $ if key2 .eqs. "SELECT_TYPE_RETV" |
| 1808 | $ then |
| 1809 | $ write tf "#ifndef ''key2'" |
| 1810 | $ write tf "#define ''key2' int" |
| 1811 | $ write tf "#endif" |
| 1812 | $ goto cfgh_in_loop1 |
| 1813 | $ endif |
| 1814 | $ endif |
| 1815 | $! |
| 1816 | $! Process SEND directives |
| 1817 | $!------------------------------------- |
| 1818 | $ if key2a .eqs. "SEND" |
| 1819 | $ then |
| 1820 | $ if key2 .eqs. "SEND_QUAL_ARG2" |
| 1821 | $ then |
| 1822 | $ write tf "#ifndef ''key2'" |
| 1823 | $ write tf "#define ''key2' const" |
| 1824 | $ write tf "#endif" |
| 1825 | $ goto cfgh_in_loop1 |
| 1826 | $ endif |
| 1827 | $ if key2 .eqs. "SEND_TYPE_ARG1" |
| 1828 | $ then |
| 1829 | $ write tf "#ifndef ''key2'" |
| 1830 | $ write tf "#define ''key2' int" |
| 1831 | $ write tf "#endif" |
| 1832 | $ goto cfgh_in_loop1 |
| 1833 | $ endif |
| 1834 | $ if key2 .eqs. "SEND_TYPE_ARG2" |
| 1835 | $ then |
| 1836 | $ write tf "#ifndef ''key2'" |
| 1837 | $ write tf "#define ''key2' void *" |
| 1838 | $ write tf "#endif" |
| 1839 | $ goto cfgh_in_loop1 |
| 1840 | $ endif |
| 1841 | $ if key2 .eqs. "SEND_TYPE_ARG3" |
| 1842 | $ then |
| 1843 | $ write tf "#ifndef ''key2'" |
| 1844 | $ write tf "#define ''key2' size_t" |
| 1845 | $ write tf "#endif" |
| 1846 | $ goto cfgh_in_loop1 |
| 1847 | $ endif |
| 1848 | $ if key2 .eqs. "SEND_TYPE_ARG4" |
| 1849 | $ then |
| 1850 | $ write tf "#ifndef ''key2'" |
| 1851 | $ write tf "#define ''key2' int" |
| 1852 | $ write tf "#endif" |
| 1853 | $ goto cfgh_in_loop1 |
| 1854 | $ endif |
| 1855 | $ if key2 .eqs. "SEND_TYPE_RETV" |
| 1856 | $ then |
| 1857 | $ write tf "#ifndef ''key2'" |
| 1858 | $ write tf "#define ''key2' int" |
| 1859 | $ write tf "#endif" |
| 1860 | $ goto cfgh_in_loop1 |
| 1861 | $ endif |
| 1862 | $ endif |
| 1863 | $! |
| 1864 | $! |
| 1865 | $! Process STATFS directives |
| 1866 | $!------------------------------- |
| 1867 | $! if key2a .eqs. "STATFS" |
| 1868 | $! then |
| 1869 | $! write tf "/* ", xline, " */" |
| 1870 | $! goto cfgh_in_loop1 |
| 1871 | $! endif |
| 1872 | $! |
| 1873 | $! Process inline directive |
| 1874 | $!------------------------------ |
| 1875 | $ if key2 .eqs. "inline" |
| 1876 | $ then |
| 1877 | $ write tf "#ifndef inline" |
| 1878 | $ write tf "#define inline __inline" |
| 1879 | $ write tf "#endif" |
| 1880 | $ goto cfgh_in_loop1 |
| 1881 | $ endif |
| 1882 | $! |
| 1883 | $! Process restrict directive |
| 1884 | $!-------------------------------- |
| 1885 | $ if key2 .eqs. "restrict" |
| 1886 | $ then |
| 1887 | $ write tf "#ifndef restrict" |
| 1888 | $ write tf "#define restrict __restrict" |
| 1889 | $ write tf "#endif" |
| 1890 | $ goto cfgh_in_loop1 |
| 1891 | $ endif |
| 1892 | $! |
| 1893 | $! Process RETSIGTYPE directive |
| 1894 | $!---------------------------------- |
| 1895 | $ if key2 .eqs. "RETSIGTYPE" |
| 1896 | $ then |
| 1897 | $ write tf "#ifndef RETSIGTYPE" |
| 1898 | $ write tf "#define RETSIGTYPE void" |
| 1899 | $ write tf "#endif" |
| 1900 | $ goto cfgh_in_loop1 |
| 1901 | $ endif |
| 1902 | $! |
| 1903 | $! Process STDC_HEADERS (SAMBA!) |
| 1904 | $!--------------------------- |
| 1905 | $ if key2 .eqs. "STDC_HEADERS" |
| 1906 | $ then |
| 1907 | $ write tf "#ifndef STDC_HEADERS" |
| 1908 | $ write tf "#define STDC_HEADERS 1" |
| 1909 | $ write tf "#endif" |
| 1910 | $ goto cfgh_in_loop1 |
| 1911 | $ endif |
| 1912 | $! |
| 1913 | $! Process PROTOTYPES directive |
| 1914 | $!------------------------------------- |
| 1915 | $ if key2 .eqs. "PROTOTYPES" |
| 1916 | $ then |
| 1917 | $ write tf "#ifndef PROTOTYPES" |
| 1918 | $ write tf "#define PROTOTYPES 1" |
| 1919 | $ write tf "#endif" |
| 1920 | $ goto cfgh_in_loop1 |
| 1921 | $ endif |
| 1922 | $! |
| 1923 | $! Special for SEEKDIR_RETURNS_VOID |
| 1924 | $!--------------------------------------- |
| 1925 | $ if key2 .eqs. "SEEKDIR_RETURNS_VOID" |
| 1926 | $ then |
| 1927 | $ write tf "#ifndef SEEKDIR_RETURNS_VOID" |
| 1928 | $ write tf "#define SEEKDIR_RETURNS_VOID 1" |
| 1929 | $ write tf "#endif" |
| 1930 | $ endif |
| 1931 | $! |
| 1932 | $! Unknown - See if CONFIGURE can give a clue for this |
| 1933 | $!---------------------------------------------------------- |
| 1934 | $ pflag = 0 |
| 1935 | $ set_flag = 0 |
| 1936 | $! gproj_name = proj_name - "_VMS" - "-VMS" |
| 1937 | $ if f$search(tfile1) .nes. "" then delete 'tfile1';* |
| 1938 | $ define/user sys$output nl: |
| 1939 | $ define/user sys$error nl: |
| 1940 | $! if f$locate("FILE", key2) .lt. key2_len then pflag = 1 |
| 1941 | $! if f$locate("DIR", key2) .eq. key2_len - 3 then pflag = 1 |
| 1942 | $! if f$locate("PATH", key2) .eq. key2_len - 4 then pflag = 1 |
| 1943 | $! |
| 1944 | $ search/out='tfile1' 'configure_script' "''key2'="/exact |
| 1945 | $ search_sev = '$severity' |
| 1946 | $ if 'search_sev' .eq. 1 |
| 1947 | $ then |
| 1948 | $ open/read/err=unknown_cf_rd_error sf 'tfile1' |
| 1949 | $search_file_rd_loop: |
| 1950 | $ read/end=unknown_cf_rd_err sf line_in |
| 1951 | $ line_in = f$edit(line_in, "TRIM") |
| 1952 | $ skey1 = f$element(0,"=",line_in) |
| 1953 | $ if skey1 .eqs. key2 |
| 1954 | $ then |
| 1955 | $ skey2 = f$element(1,"=",line_in) |
| 1956 | $ skey2a = f$extract(0,2,skey2) |
| 1957 | $! |
| 1958 | $! |
| 1959 | $! We can not handle assignment to shell symbols. |
| 1960 | $! For now skip them. |
| 1961 | $!------------------------------------------------------------ |
| 1962 | $ if f$locate("$", skey2) .lt. f$length(skey2) |
| 1963 | $ then |
| 1964 | $ write tf "/* ", xline, " */" |
| 1965 | $ set_flag = 1 |
| 1966 | $ goto found_in_configure |
| 1967 | $ endif |
| 1968 | $! |
| 1969 | $! Keep these two cases separate to make it easier to add |
| 1970 | $! more future intelligence to this routine |
| 1971 | $!---------------------------------------------------------------------- |
| 1972 | $ if skey2a .eqs. """`" |
| 1973 | $ then |
| 1974 | $! if pflag .eq. 1 |
| 1975 | $! then |
| 1976 | $! write tf "#ifndef ''key2'" |
| 1977 | $! write tf "#define ",key2," """,gproj_name,"_",key2,"""" |
| 1978 | $! write tf "#endif" |
| 1979 | $! else |
| 1980 | $! Ignore this for now |
| 1981 | $!------------------------------------------ |
| 1982 | $ write tf "/* ", xline, " */" |
| 1983 | $! endif |
| 1984 | $ set_flag = 1 |
| 1985 | $ goto found_in_configure |
| 1986 | $ endif |
| 1987 | $ if skey2a .eqs. """$" |
| 1988 | $ then |
| 1989 | $! if pflag .eq. 1 |
| 1990 | $! then |
| 1991 | $! write tf "#ifndef ''key2'" |
| 1992 | $! write tf "#define ",key2," """,gproj_name,"_",key2,"""" |
| 1993 | $! write tf "#endif" |
| 1994 | $! else |
| 1995 | $! Ignore this for now |
| 1996 | $!------------------------------------------- |
| 1997 | $ write tf "/* ", xline, " */" |
| 1998 | $! endif |
| 1999 | $ set_flag = 1 |
| 2000 | $ goto found_in_configure |
| 2001 | $ endif |
| 2002 | $! |
| 2003 | $! Remove multiple layers of quotes if present |
| 2004 | $!---------------------------------------------------------- |
| 2005 | $ if f$extract(0, 1, skey2) .eqs. "'" |
| 2006 | $ then |
| 2007 | $ skey2 = skey2 - "'" - "'" - "'" - "'" |
| 2008 | $ endif |
| 2009 | $ if f$extract(0, 1, skey2) .eqs. """" |
| 2010 | $ then |
| 2011 | $ skey2 = skey2 - """" - """" - """" - """" |
| 2012 | $ endif |
| 2013 | $ write tf "#ifndef ''key2'" |
| 2014 | $ if skey2 .eqs. "" |
| 2015 | $ then |
| 2016 | $ write tf "#define ",key2 |
| 2017 | $ else |
| 2018 | $! Only quote non-numbers |
| 2019 | $!---------------------------------------- |
| 2020 | $ if f$string(skey2+0) .eqs. skey2 |
| 2021 | $ then |
| 2022 | $ write tf "#define ",key2," ",skey2 |
| 2023 | $ else |
| 2024 | $ write tf "#define ",key2," """,skey2,"""" |
| 2025 | $ endif |
| 2026 | $ endif |
| 2027 | $ write tf "#endif" |
| 2028 | $ set_flag = 1 |
| 2029 | $ else |
| 2030 | $ goto search_file_rd_loop |
| 2031 | $! if pflag .eq. 1 |
| 2032 | $! then |
| 2033 | $! write tf "#ifndef ''key2'" |
| 2034 | $! write tf "#define ",key2," """,gproj_name,"_",key2,"""" |
| 2035 | $! write tf "#endif" |
| 2036 | $! set_flag = 1 |
| 2037 | $! endif |
| 2038 | $ endif |
| 2039 | $found_in_configure: |
| 2040 | $unknown_cf_rd_err: |
| 2041 | $ if f$trnlnm("sf","lnm$process",,"SUPERVISOR") .nes. "" |
| 2042 | $ then |
| 2043 | $ close sf |
| 2044 | $ endif |
| 2045 | $ if f$search(tfile1) .nes. "" then delete 'tfile1';* |
| 2046 | $ if set_flag .eq. 1 then goto cfgh_in_loop1 |
| 2047 | $ endif |
| 2048 | $ endif |
| 2049 | $! |
| 2050 | $! |
| 2051 | $! |
| 2052 | $! If it falls through everything else, comment it out |
| 2053 | $!----------------------------------------------------- |
| 2054 | $ write tf "/* ", xline, " */" |
| 2055 | $ goto cfgh_in_loop1 |
| 2056 | $cfgh_in_loop1_end: |
| 2057 | $close inf |
| 2058 | $! |
| 2059 | $! |
| 2060 | $! Write out the tail |
| 2061 | $!-------------------- |
| 2062 | $write_tail: |
| 2063 | $gosub write_config_h_tail |
| 2064 | $! |
| 2065 | $! Exit and clean up |
| 2066 | $!-------------------- |
| 2067 | $general_error: |
| 2068 | $status = '$status' |
| 2069 | $all_exit: |
| 2070 | $set noon |
| 2071 | $if f$trnlnm("sf","lnm$process",,"SUPERVISOR") .nes. "" then close sf |
| 2072 | $if f$trnlnm("tf","lnm$process",,"SUPERVISOR") .nes. "" then close tf |
| 2073 | $if f$trnlnm("inf","lnm$process",,"SUPERVISOR") .nes. "" then close inf |
| 2074 | $if f$trnlnm("tf1","lnm$process",,"SUPERVISOR") .nes. "" then close tf1 |
| 2075 | $if f$trnlnm("tf2","lnm$process",,"SUPERVISOR") .nes. "" then close tf2 |
| 2076 | $if f$trnlnm("tfcv","lnm$process",,"SUPERVISOR") .nes. "" then close tfcv |
| 2077 | $if f$type(tfile1) .eqs. "STRING" |
| 2078 | $then |
| 2079 | $ if f$search(tfile1) .nes. "" then delete 'tfile1';* |
| 2080 | $endif |
| 2081 | $if f$type(dchfile) .eqs. "STRING" |
| 2082 | $then |
| 2083 | $ if f$search(dchfile) .nes. "" then delete 'dchfile';* |
| 2084 | $endif |
| 2085 | $if f$type(starhfile) .eqs. "STRING" |
| 2086 | $then |
| 2087 | $ if f$search(starhfile) .nes. "" then delete 'starhfile';* |
| 2088 | $endif |
| 2089 | $if f$type(configure_script) .eqs. "STRING" |
| 2090 | $then |
| 2091 | $ if f$search(configure_script) .nes. "" then delete 'configure_script';* |
| 2092 | $endif |
| 2093 | $exit 'status' |
| 2094 | $! |
| 2095 | $! |
| 2096 | $control_y: |
| 2097 | $ status = ss_control_y |
| 2098 | $ goto all_exit |
| 2099 | $! |
| 2100 | $! |
| 2101 | $! |
| 2102 | $! Gosub to write a new config_vms.h |
| 2103 | $!----------------------------------- |
| 2104 | $write_config_vms: |
| 2105 | $outfile = "sys$disk:[]config_vms.h" |
| 2106 | $create 'outfile' |
| 2107 | $open/append tf 'outfile' |
| 2108 | $write tf "/* File: config_vms.h" |
| 2109 | $write tf "**" |
| 2110 | $write tf "** This file contains the manual edits needed for porting" |
| 2111 | $!write tf "** the ''proj_name' package to OpenVMS. |
| 2112 | $write tf "**" |
| 2113 | $write tf "** Edit this file as needed. The procedure that automatically" |
| 2114 | $write tf "** generated this header stub will not overwrite or make any" |
| 2115 | $write tf "** changes to this file." |
| 2116 | $write tf "**" |
| 2117 | $write tf - |
| 2118 | "** ", datetime, tab, username, tab, "Generated by ''my_proc_file'" |
| 2119 | $write tf "**" |
| 2120 | $write tf - |
| 2121 | "**========================================================================*/" |
| 2122 | $write tf "" |
| 2123 | $close tf |
| 2124 | $return |
| 2125 | $! |
| 2126 | $! gosub to write out a documentation header for config.h |
| 2127 | $!---------------------------------------------------------------- |
| 2128 | $write_config_h_header: |
| 2129 | $outfile = "sys$disk:[]config.h" |
| 2130 | $create 'outfile' |
| 2131 | $open/append tf 'outfile' |
| 2132 | $write tf "#ifndef CONFIG_H" |
| 2133 | $write tf "#define CONFIG_H" |
| 2134 | $write tf "/* File: config.h" |
| 2135 | $write tf "**" |
| 2136 | $write tf - |
| 2137 | "** This file contains the options needed for porting " |
| 2138 | $write tf "** the project on a VMS system." |
| 2139 | $write tf "**" |
| 2140 | $write tf "** Try not to make any edits to this file, as it is" |
| 2141 | $write tf "** automagically generated." |
| 2142 | $write tf "**" |
| 2143 | $write tf "** Manual edits should be made to the config_vms.h file." |
| 2144 | $write tf "**" |
| 2145 | $write tf - |
| 2146 | "** ", datetime, tab, username, tab, "Generated by ''my_proc_file'" |
| 2147 | $write tf "**" |
| 2148 | $write tf - |
| 2149 | "**========================================================================*/" |
| 2150 | $write tf "" |
| 2151 | $write tf "#if (__CRTL_VER >= 70200000) && !defined (__VAX)" |
| 2152 | $write tf "#define _LARGEFILE 1" |
| 2153 | $write tf "#endif" |
| 2154 | $write tf "" |
| 2155 | $write tf "#ifndef __VAX" |
| 2156 | $write tf "#ifdef __CRTL_VER" |
| 2157 | $write tf "#if __CRTL_VER >= 80200000" |
| 2158 | $write tf "#define _USE_STD_STAT 1" |
| 2159 | $write tf "#endif" |
| 2160 | $write tf "#endif" |
| 2161 | $write tf "#endif" |
| 2162 | $write tf "" |
| 2163 | $! |
| 2164 | $write tf " /* Allow compiler builtins */" |
| 2165 | $write tf "/*-------------------------*/" |
| 2166 | $write tf "#ifdef __DECC_VER" |
| 2167 | $write tf "#include <non_existant_dir:builtins.h>" |
| 2168 | $write tf "#endif" |
| 2169 | $! |
| 2170 | $write tf "" |
| 2171 | $return |
| 2172 | $! |
| 2173 | $! gosub to write out the tail for config.h and close it |
| 2174 | $!--------------------------------------------------------- |
| 2175 | $write_config_h_tail: |
| 2176 | $write tf "" |
| 2177 | $write tf " /* Include the hand customized settings */" |
| 2178 | $write tf "/*--------------------------------------*/" |
| 2179 | $write tf "#include ""config_vms.h""" |
| 2180 | $write tf "" |
| 2181 | $write tf "#endif /* CONFIG_H */" |
| 2182 | $close tf |
| 2183 | $return |
| 2184 | $! |