~ubuntu-branches/ubuntu/vivid/curl/vivid

« back to all changes in this revision

Viewing changes to packages/vms/config_h.com

  • Committer: Package Import Robot
  • Author(s): Sebastien Bacher
  • Date: 2013-05-07 12:16:37 UTC
  • mfrom: (3.4.37 sid)
  • Revision ID: package-import@ubuntu.com-20130507121637-9t3i98qgsyr9dw5d
Tags: 7.30.0-1ubuntu1
* Resynchronize on Debian. Remaining changes:
  - Drop dependencies not in main:
    + Build-Depends: Drop stunnel4 and libssh2-1-dev.
    + Drop libssh2-1-dev from binary package Depends.
  - Add new libcurl3-udeb package.
  - Add new curl-udeb package.
* Add warning to debian/patches/series.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
$!