-
Notifications
You must be signed in to change notification settings - Fork 70
/
CMakeconfig.h.in
681 lines (525 loc) · 24.9 KB
/
CMakeconfig.h.in
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
/*
CMakeConfig.h.in, used to generate config.h to build Hercules
Copyright 2017 by Stephen Orso.
Distributed under the Boost Software License, Version 1.0.
See accompanying file BOOST_LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
/* ********************* Summary of CMake Build *********************
------------------------------------------------------------------------
CMake run timestamp @BUILD_TIMESTAMP@
Install prefix @CMAKE_INSTALL_PREFIX@
Source directory @PROJECT_SOURCE_DIR@
Build directory @PROJECT_BINARY_DIR@
Executable directory @exec_rel_dir@
Shared library dir @libs_rel_dir@
Loadable module dir @mods_rel_dir_ins@
..from build dir @mods_rel_dir_bld@
Data Directory (http) @http_dir@
Build command line: @CMAKE_MAKE_PROGRAM@
C Compiler version: @CMAKE_C_COMPILER_ID@ @CMAKE_C_COMPILER_VERSION@
C compiler options: @CMAKE_C_FLAGS@
Link libraries: @link_alllibs@
------------------------------------------------------------------------
*/
/*
*********************************************************************
Basic Project and Option Definitions
*********************************************************************
*/
/*
MODRELDIRBLD is the default location to be searched for loadable
modules if search fails when using the target system's default search
process (RPATH for UNIX-like, fixed search order for Windows) when
Hercules run from the build tree. MODRELDIRINS is the default when
Hercules is run from an install tree.
*/
#define MODRELDIRBLD "@mods_rel_dir_bld@"
#define MODRELDIRINS "@mods_rel_dir_ins@"
/*
HTTP_ROOT_INS is the default root directory relative to the Hercules
executable of HTML content served by the Hercules embedded web server
when Hercules is run from the install directory. HTTP_ROOT_INS is
used when Hercules is run from the build directory. If neither
directory exists, the executable directory is used as the default.
*/
#define PKGDATADIR "@http_dir@"
/* DO NOT DEFINE MODULESDIR! hdl.c can find loadable modules using */
/* the host system's library/module search process. */
/* #undef MODULESDIR */
/*
Project information...
Hercules version.c presumes that HOST_ARCH is unquoted for Windows
builds and quoted otherwise. This should really be a fixup in
version.c, but we shall wait for the retirement of the current
Windows build.
*/
#define HOST_ARCH "@HOST_ARCH@"
#define VERS_MAJ @PROJECT_VERSION_MAJOR@
#define VERS_INT @PROJECT_VERSION_MINOR@
#define VERS_MIN @PROJECT_VERSION_PATCH@
#define VERS_BLD 0
#define VERSION "@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@"
#cmakedefine WINDOWS_BUILD @WINDOWS_BUILD@
/*
User options specified on the command line or via cmake-gui or ccmake.
*/
#cmakedefine CCKD_BZIP2 @CCKD_BZIP2@
#cmakedefine CUSTOM_BUILD_STRING "@CUSTOM_BUILD_STRING@"
#cmakedefine DISABLE_IAF2 @DISABLE_IAF2@
#cmakedefine ENABLE_IPV6 @ENABLE_IPV6@
#cmakedefine ENABLE_REGINA_REXX @ENABLE_REGINA_REXX@
#cmakedefine ENABLE_OBJECT_REXX @ENABLE_OBJECT_REXX@
#cmakedefine EXTERNALGUI @EXTERNALGUI@
#cmakedefine HET_BZIP2 @HET_BZIP2@
#cmakedefine MAX_CPU_ENGINES @MAX_CPU_ENGINES@
#cmakedefine NEED_GETOPT_WRAPPER @NEED_GETOPT_WRAPPER@
#cmakedefine OPTION_CAPABILITIES @OPTION_CAPABILITIES@
#cmakedefine OPTION_FTHREADS @OPTION_FTHREADS@
#cmakedefine OPTION_HAO @OPTION_HAO@
#cmakedefine OPTION_SYNCIO @OPTION_SYNCIO@
#cmakedefine OPTION_NOSYNCIO @OPTION_NOSYNCIO@
/*
Debug is special because of a name collision between the user option
macro and the Hercules preprocessor macro.
*/
#cmakedefine DEBUG_BUILD @DEBUG_BUILD@
#ifdef DEBUG_BUILD
# define DEBUG 1
#endif
/*
HQA_DIR is special because it never finds its way into config.h.
Rather, it triggers a test for HAVE_HQA_H, which is used by the build.
*/
#cmakedefine HAVE_HQA_H @HAVE_HQA_H@
/*
Macros for large file support (LFS). These are only required for
32-bit systems that require enabling macros for LFS. 64-bit systems
include LFS without needing enabling macros.
_FILE_OFF_SET_BITS is used on 32-bit open source systems with
enableable large file support (GNU/Linux and Solaris), while
_LARGE_FILES is used on 32-bit AIX systems.
It is less clear that the Mac OS 10.5 64-bit inode is a requirement
just for 32-bit systems, as that defines a file system matter, not
the bit-width of a file offset.
Hercules uses DISABLE_LARGEFILE to avoid use of any available
transitional LFS if LARGEFILE=NO included, and HAVE_FSEEKO to use
fseeko()/ftello() instead of the non-"o" counterparts.
Hercules does not use the othre three macros. Rather, these macros
control the expansion of target system headers when LFS is enabled.
*/
#cmakedefine _FILE_OFFSET_BITS @_FILE_OFFSET_BITS@
#cmakedefine _LARGE_FILES @_LARGE_FILES@
#cmakedefine _DARWIN_USE_64_BIT_INODE @_DARWIN_USE_64_BIT_INODE@
#cmakedefine HAVE_FSEEKO @HAVE_FSEEKO@
#cmakedefine DISABLE_LARGEFILE @DISABLE_LARGEFILE@
/*
Options that may be specified on the command line only. These are
not listed in CMake-gui or in ccmake.
*/
#cmakedefine NO_ASM_BYTESWAP @NO_ASM_BYTESWAP@
#cmakedefine NO_IEEE_SUPPORT @NO_IEEE_SUPPORT@
/*
Indicate whether hercifc should be built. In addition to the
generator implications of building hercifc, there is preprocessor
code in hercifc that suppressses code if the following is not
defined. Belt and braces I suppose. And there is one Linux header
needed to build hercifc...on BSD-based systems the required header
net/if.h is sufficent.
*/
#cmakedefine BUILD_HERCIFC @BUILD_HERCIFC@
#cmakedefine HAVE_LINUX_IF_TUN_H @HAVE_LINUX_IF_TUN_H@
/*
Sundry target hardware characteristics.
*/
#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@
#cmakedefine SIZEOF_INT @SIZEOF_INT@
#cmakedefine SIZEOF_LONG @SIZEOF_LONG@
#cmakedefine SIZEOF_SIZE_T @SIZEOF_SIZE_T@
#cmakedefine SIZEOF_INT_P @SIZEOF_INT_P@
#cmakedefine SIZEOF_OFF_T @SIZEOF_OFF_T@
/*
Not a hardware characteristic, but it is the only other sizeof needed
to build Hercules. And this is as good a place as any.
*/
#cmakedefine SIZEOF_PTHREAD_T @SIZEOF_PTHREAD_T@
/*
Do not turn on libtool. Configure.ac always used libtool. This
CMake-generated build never uses libtool, and it always builds shared
libraries and dynamically loaded modules. Set the target-specific
suffix to be used for shared libraries.
*/
#define HDL_BUILD_SHARED 1
#define LTDL_SHLIB_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
#define OPTION_DYNAMIC_LOAD 1
/*
*********************************************************************
#defines for Required Headers
*********************************************************************
*/
/*
The following header macros are not used by Hercules. Hercules needs
the headers but does not guard the includes (nor should it). The
build scripts check for these headers. If any are missing, error
messages are issued and the build is terminated.
*/
// #cmakedefine HAVE_CTYPE_H @HAVE_CTYPE_H@
// #cmakedefine HAVE_ERRNO_H @HAVE_ERRNO_H@
// #cmakedefine HAVE_FCNTL_H @HAVE_FCNTL_H@
// #cmakedefine HAVE_LIMITS_H @HAVE_LIMITS_H@
// #cmakedefine HAVE_MATH_H @HAVE_MATH_H@
// #cmakedefine HAVE_SETJMP_H @HAVE_SETJMP_H@
// #cmakedefine HAVE_SCHED_H @HAVE_SCHED_H@
// #cmakedefine HAVE_STDARG_H @HAVE_STDARG_H@
// #cmakedefine HAVE_STDIO_H @HAVE_STDIO_H@
// #cmakedefine HAVE_STDLIB_H @HAVE_STDLIB_H@
// #cmakedefine HAVE_STRING_H @HAVE_STRING_H@
// #cmakedefine HAVE_SYS_STAT_H @HAVE_SYS_STAT_H@
// #cmakedefine HAVE_SYS_TIME_H @HAVE_SYS_TIME_H@
// #cmakedefine HAVE_SYS_TYPES_H @HAVE_SYS_TYPES_H@
// #cmakedefine HAVE_SYS_MMAN_H @HAVE_SYS_MMAN_H@
/*
HAVE_TIME_H is required for inclusion of sys/time.h by hstdinc.h.
There is no alternative to sys/time.h, and there is no need for
conditional inclusion. The build will be terminated if it is
not present. The same applies to sys/sysctl.h.
*/
#cmakedefine HAVE_DIRENT_H @HAVE_DIRENT_H@
#cmakedefine HAVE_PWD_H @HAVE_PWD_H@
#cmakedefine HAVE_SIGNAL_H @HAVE_SIGNAL_H@
#cmakedefine HAVE_SYS_SYSCTL_H @HAVE_SYS_SYSCTL_H@
#cmakedefine HAVE_SYS_RESOURCE_H @HAVE_SYS_RESOURCE_H@
#cmakedefine HAVE_SYS_UTSNAME_H @HAVE_SYS_UTSNAME_H@
#cmakedefine HAVE_SYS_WAIT_H @HAVE_SYS_WAIT_H@
#cmakedefine HAVE_TIME_H @HAVE_TIME_H@
/*
Enable inclusion of sys/sockio.h on Solaris systems. BSD systems
include sys/sockio.h in ioctl.h. sys/sockio.h has a guard, so
we need not be selective about Solaris with this macro.
*/
#cmakedefine HAVE_SYS_SOCKIO_H @HAVE_SYS_SOCKIO_H@
/*
One of the following integer type headers must be defined. hstdint.h
uses these variables to include the best one that is present.
*/
#cmakedefine HAVE_STDINT_H @HAVE_STDINT_H@
#cmakedefine HAVE_INTTYPES_H @HAVE_INTTYPES_H@
#cmakedefine HAVE_UNISTD_H @HAVE_UNISTD_H@
/*
The following is needed for correct expansion of the SoftFloat-3a
headers in ieee.c (and nowhere else...yet).
*/
#cmakedefine HAVE_STDBOOL_H @HAVE_STDBOOL_H@
/*
Base functions required for the build.
*/
#cmakedefine HAVE_MEMRCHR @HAVE_MEMRCHR@
#cmakedefine HAVE_GETOPT_LONG @HAVE_GETOPT_LONG@
#cmakedefine HAVE_STRLCPY @HAVE_STRLCPY@
#cmakedefine HAVE_STRLCAT @HAVE_STRLCAT@
#cmakedefine HAVE_STRERROR_R @HAVE_STRERROR_R@
#cmakedefine HAVE_STRSIGNAL @HAVE_STRSIGNAL@
#cmakedefine HAVE_SYS_SIGLIST @HAVE_SYS_SIGLIST@
#cmakedefine HAVE_SLEEP @HAVE_SLEEP@
#cmakedefine HAVE_USLEEP @HAVE_USLEEP@
#cmakedefine HAVE_NANOSLEEP @HAVE_NANOSLEEP@
#cmakedefine HAVE_SCHED_YIELD @HAVE_SCHED_YIELD@
#cmakedefine HAVE_STRTOK_R @HAVE_STRTOK_R@
#cmakedefine HAVE_GETTIMEOFDAY @HAVE_GETTIMEOFDAY@
#cmakedefine HAVE_GETPGRP @HAVE_GETPGRP@
#cmakedefine HAVE_GETLOGIN @HAVE_GETLOGIN@
#cmakedefine HAVE_GETLOGIN_R @HAVE_GETLOGIN_R@
#cmakedefine HAVE_REALPATH @HAVE_REALPATH@
#cmakedefine HAVE_FSYNC @HAVE_FSYNC@
#cmakedefine HAVE_FTRUNCATE @HAVE_FTRUNCATE@
#cmakedefine HAVE_INET_ATON @HAVE_INET_ATON@
#cmakedefine HAVE_FORK @HAVE_FORK@
#cmakedefine HAVE_SOCKETPAIR @HAVE_SOCKETPAIR@
#cmakedefine HAVE_SYSCONF @HAVE_SYSCONF@
/*
One or more of the following memory management functions are required
to build. Most are deprecated; posix_memalign is not deprecated and
apparently the most desireable.
*/
#cmakedefine HAVE_MLOCK @HAVE_MLOCK@
#cmakedefine HAVE_MLOCKALL @HAVE_MLOCKALL@
#cmakedefine HAVE_PVALLOC @HAVE_PVALLOC@
#cmakedefine HAVE_VALLOC @HAVE_VALLOC@
#cmakedefine HAVE_POSIX_MEMALIGN @HAVE_POSIX_MEMALIGN@
/*
*********************************************************************
Macros used to configure Hercules networking
*********************************************************************
*/
/*
The following headers are in the configure.ac option section (line
115), but they are not optional on non-Windows systems. Try building
Hercules without them. :-)
*/
#cmakedefine HAVE_SYS_SOCKET_H @HAVE_SYS_SOCKET_H@
#cmakedefine HAVE_NETINET_IN_H @HAVE_NETINET_IN_H@
#cmakedefine HAVE_NET_IF_H @HAVE_NET_IF_H@
#cmakedefine HAVE_NETDB_H @HAVE_NETDB_H@
#cmakedefine HAVE_NET_ROUTE_H @HAVE_NET_ROUTE_H@
#cmakedefine HAVE_NET_TCP_H @HAVE_NET_TCP_H@
#cmakedefine HAVE_NETINET_TCP_H @HAVE_NETINET_TCP_H@
#cmakedefine HAVE_STRUCT_SOCKADDR_IN_SIN_LEN @HAVE_STRUCT_SOCKADDR_IN_SIN_LEN@
#cmakedefine HAVE_STRUCT_IN_ADDR_S_ADDR @HAVE_STRUCT_IN_ADDR_S_ADDR@
#cmakedefine HAVE_ARPA_INET_H @HAVE_ARPA_INET_H@
/*
Optional types for networking. If they do not exist, Hercules will
define appropriate substitutes during the build.
*/
#cmakedefine HAVE_IN_ADDR_T @HAVE_IN_ADDR_T@
#cmakedefine HAVE_SOCKLEN_T @HAVE_SOCKLEN_T@
/*
Sundry networking macros. Note that on FreeBSD, the "SIOC.*" macros
are defined in sys/sockio.h, which is not included in Hercules. In
Debian, they are defined in sys/ioctl.h, but rather than being a
function call, they are constants. The macros are used in hostopts.h,
and the Debian (Linux?) definition seems to be expected. So from
Hercules' perspective, they exist in Linux and not in FreeBSD.
*/
#cmakedefine HAVE_DECL_IFNAMSIZ @HAVE_DECL_IFNAMSIZ@
#cmakedefine HAVE_DECL_SIOCSIFNETMASK @HAVE_DECL_SIOCSIFNETMASK@
#cmakedefine HAVE_DECL_SIOCSIFBRDADDR @HAVE_DECL_SIOCSIFBRDADDR@
#cmakedefine HAVE_DECL_SIOCSIFHWADDR @HAVE_DECL_SIOCSIFHWADDR@
#cmakedefine HAVE_DECL_SIOCGIFHWADDR @HAVE_DECL_SIOCGIFHWADDR@
#cmakedefine HAVE_DECL_SIOCADDRT @HAVE_DECL_SIOCADDRT@
#cmakedefine HAVE_DECL_SIOCDELRT @HAVE_DECL_SIOCDELRT@
#cmakedefine HAVE_DECL_SIOCDIFADDR @HAVE_DECL_SIOCDIFADDR@
/*
TCP/IP keepalive macros. The first three specify the general level
keepalive support available in the target system. The remainder
identify the target-specific macros needed for that support. Either
_KEEPALIVE macro indicates basic support. Any one of the remaining
three TCP_KEEP* (IDLE, INTVL, CNT) enable partial keepalive support,
and if all three are present, full keepalive support is possible.
*/
#cmakedefine HAVE_FULL_KEEPALIVE @HAVE_FULL_KEEPALIVE@
#cmakedefine HAVE_PARTIAL_KEEPALIVE @HAVE_PARTIAL_KEEPALIVE@
#cmakedefine HAVE_BASIC_KEEPALIVE @HAVE_BASIC_KEEPALIVE@
#cmakedefine HAVE_DECL_SO_KEEPALIVE @HAVE_DECL_SO_KEEPALIVE@
#cmakedefine HAVE_DECL_TCP_KEEPALIVE @HAVE_DECL_TCP_KEEPALIVE@
#cmakedefine HAVE_DECL_TCP_KEEPIDLE @HAVE_DECL_TCP_KEEPIDLE@
#cmakedefine HAVE_DECL_TCP_KEEPINTVL @HAVE_DECL_TCP_KEEPINTVL@
#cmakedefine HAVE_DECL_TCP_KEEPCNT @HAVE_DECL_TCP_KEEPCNT@
/*
*********************************************************************
Determine how atomic operations are supported.
*********************************************************************
*/
/*
The following communicate the state of atomic instrinsics made available
by the C compiler and the underlying target userland/os/hardware. Choices
in order of desirability are:
- C11 intrinsics
- __atomic_* intrinsics
- __sync_* intrinsics
The header hatomic.h sorts out the choices for the build. Only the
byte-typed intrinsics are used, for the NI, OI, and XOI instructions and
their long-displacement (e.g., NIY) equivalents.
*/
#cmakedefine HAVE_STDATOMIC_H @HAVE_STDATOMIC_H@
#cmakedefine HAVE_SYNC_BUILTINS @HAVE_SYNC_BUILTINS@
#cmakedefine HAVE_ATOMIC_INTRINSICS @HAVE_ATOMIC_INTRINSICS@
#cmakedefine C11_ATOMICS_AVAILABLE @C11_ATOMICS_AVAILABLE@
#cmakedefine C11_ATOMIC_BOOL_LOCK_FREE @C11_ATOMIC_BOOL_LOCK_FREE@
#cmakedefine C11_ATOMIC_CHAR_LOCK_FREE @C11_ATOMIC_CHAR_LOCK_FREE@
#cmakedefine C11_ATOMIC_CHAR16_T_LOCK_FREE @C11_ATOMIC_CHAR16_T_LOCK_FREE@
#cmakedefine C11_ATOMIC_CHAR32_T_LOCK_FREE @C11_ATOMIC_CHAR32_T_LOCK_FREE@
#cmakedefine C11_ATOMIC_WCHAR_T_LOCK_FREE @C11_ATOMIC_WCHAR_T_LOCK_FREE@
#cmakedefine C11_ATOMIC_SHORT_LOCK_FREE @C11_ATOMIC_SHORT_LOCK_FREE@
#cmakedefine C11_ATOMIC_INT_LOCK_FREE @C11_ATOMIC_INT_LOCK_FREE@
#cmakedefine C11_ATOMIC_LONG_LOCK_FREE @C11_ATOMIC_LONG_LOCK_FREE@
#cmakedefine C11_ATOMIC_LLONG_LOCK_FREE @C11_ATOMIC_LLONG_LOCK_FREE@
#cmakedefine C11_ATOMIC_POINTER_LOCK_FREE @C11_ATOMIC_POINTER_LOCK_FREE@
/*
*********************************************************************
For hercifc: identify target setuid capabilities.
*********************************************************************
*/
/*
Configure if and how get/set UID can be done. If not possible,
NO_SETUID is defined. Otherwise, some of the five functions
below can be used to enable get/set UID.
*/
#cmakedefine HAVE_SETRESUID @HAVE_SETRESUID@
#cmakedefine HAVE_GETRESUID @HAVE_GETRESUID@
#cmakedefine HAVE_SETREUID @HAVE_SETREUID@
#cmakedefine HAVE_GETEUID @HAVE_GETEUID@
#cmakedefine HAVE_GETUID @HAVE_GETUID@
#cmakedefine NO_SETUID @NO_SETUID@
/*
See if sys/capability.h and the corresponding library cap exist.
If sys/capability.h and the corresponding library cap exist, then
Hercules can be built with support for fine-grained capabilities.
Header prctl.h enables some additional control. Both Capabilities
and prctl are Linux-only implementations of POSIX 1003.1e.
Hercules code only checks for the headers; the functions and library
are assumed to exist.
*/
#cmakedefine HAVE_CAP_SET_PROC @HAVE_CAP_SET_PROC@
#cmakedefine HAVE_SYS_CAPABILITY_H @HAVE_SYS_CAPABILITY_H@
#cmakedefine HAVE_SYS_PRTCL_H @HAVE_SYS_PRTCL_H@
/*
*********************************************************************
Macros for other optional features, headers, and functions
*********************************************************************
*/
/*
Optional useful types. HAVE___UINT128_T controls whether Hercules
can be built with more than 64 CPUs. If the others do not exist,
Hercules will define appropriate substitutes during the build.
*/
#cmakedefine HAVE___UINT128_T @HAVE___UINT128_T@
#cmakedefine HAVE_U_INT8_T @HAVE_U_INT8_T@
#cmakedefine HAVE_U_CHAR @HAVE_U_CHAR@
#cmakedefine HAVE_U_SHORT @HAVE_U_SHORT@
#cmakedefine HAVE_U_INT @HAVE_U_INT@
#cmakedefine HAVE_U_LONG @HAVE_U_LONG@
/*
Optional headern for Hercules internal functionality. If any are
missing, Hercules will use an internal equivalent as a substitute
or avoid the capability, but the build will continue.
*/
#cmakedefine HAVE_BYTESWAP_H @HAVE_BYTESWAP_H@
#cmakedefine HAVE_ASSERT_H @HAVE_ASSERT_H@
/*
Headers and libraries for REXX, compression, and regular expression
support. Hercules will build correctly without them. CMake
will abort the build for any optional item that was explicitly
requested by the builder.
*/
#cmakedefine HAVE_BZLIB_H @HAVE_BZLIB_H@
#cmakedefine HAVE_LIBZ @HAVE_LIBZ@
#cmakedefine HAVE_ZLIB_H @HAVE_ZLIB_H@
#cmakedefine HAVE_REGEX_H @HAVE_REGEX_H@
#cmakedefine HAVE_REXXSAA_H @HAVE_REXXSAA_H@
#cmakedefine HAVE_REGINA_REXXSAA_H @HAVE_REGINA_REXXSAA_H@
/*
Headers and functions for Unix shell tab key processing and one-char
command shortcuts on the internal Hercules CUI panel.
*/
#cmakedefine HAVE_ALPHASORT @HAVE_ALPHASORT@
#cmakedefine HAVE_SCANDIR @HAVE_SCANDIR@
#cmakedefine HAVE_TERMIOS_H @HAVE_TERMIOS_H@
#cmakedefine CONST_IN_SCANDIR_PROTOTYPE @CONST_IN_SCANDIR_PROTOTYPE@
/*
Headers and macros for real tape devices. sys/mtio.h and MTEWARN are
for SCSI tape devices only, while the rest are for all tapes.
Header sys/param.h is a prerequisite for sys/mount.h on some systems.
*/
#cmakedefine HAVE_SYS_PARAM_H @HAVE_SYS_PARAM_H@
#cmakedefine HAVE_SYS_MOUNT_H @HAVE_SYS_MOUNT_H@
#cmakedefine HAVE_SYS_MTIO_H @HAVE_SYS_MTIO_H@
#cmakedefine HAVE_DECL_MTEWARN @HAVE_DECL_MTEWARN@
/*
Headers for shared device server routines.
*/
#cmakedefine HAVE_SYS_UN_H @HAVE_SYS_UN_H@
/*
Miscelaneous macros that reveal userland capabilities
*/
#cmakedefine HAVE_DECL_LOGIN_NAME_MAX @HAVE_DECL_LOGIN_NAME_MAX@
#cmakedefine HAVE_DECL__SC_NPROCESSORS_CONF @HAVE_DECL__SC_NPROCESSORS_CONF@
#cmakedefine HAVE_DECL__SC_NPROCESSORS_ONLN @HAVE_DECL__SC_NPROCESSORS_ONLN@
/*
Sundry other Userland capabilities and requirements
*/
#cmakedefine NEED_GETOPT_OPTRESET @NEED_GETOPT_OPTRESET@
/*
Sundry other c compiler capabilities. These macros are not required,
but they do control how Hercules builds.
*/
#cmakedefine C99_FLEXIBLE_ARRAYS @C99_FLEXIBLE_ARRAYS@
#cmakedefine HAVE_ATTR_PRINTF @HAVE_ATTR_PRINTF@
#cmakedefine HAVE_ATTR_REGPARM @HAVE_ATTR_REGPARM@
#cmakedefine HAVE_GCC_DIAG_PRAGMA @HAVE_GCC_DIAG_PRAGMA@
#cmakedefine HAVE_GCC_DIAG_PUSHPOP @HAVE_GCC_DIAG_PUSHPOP@
#cmakedefine HAVE_GCC_UNUSED_FUNC_WARNING @HAVE_GCC_UNUSED_FUNC_WARNING@
#cmakedefine HAVE_GCC_SET_UNUSED_WARNING @HAVE_GCC_SET_UNUSED_WARNING@
#cmakedefine HAVE_VERY_STRICT_ALIASING @HAVE_VERY_STRICT_ALIASING@
/*
*********************************************************************
Macros for an Apple/macOS build
*********************************************************************
*/
#cmakedefine HAVE_MACH-O_DYLD_H @HAVE_MACH-O_DYLD_H@
#cmakedefine HAVE_MACH_O_DYLD_H @HAVE_MACH_O_DYLD_H@
#cmakedefine HAVE__NSGETEXECUTABLEPATH @HAVE__NSGETEXECUTABLEPATH@
/*
*********************************************************************
Windows-specific macros
*********************************************************************
*/
/*
If this is a Windows build, undefine macros that are #define'd in
hercwind.h and other header files.
Notes:
1. Note that for Windows, if PKGDATADIR is unset, httpserv.c uses a
default of the html subdirectory of the directory from which the
hercules.exe executable was retrieved. On UNIX-like systems,
"/usr/local/share/hercules/" is the default.
2. _MSVC_ is used throughout Hercules code to test for both "building
for Windows" _and_ "using the Visual Studio c compiler." While it
is true that if one is using Visual Studio c, one is building for
Windows, the converse is not true: both clang and Intel c compilers
exist for non-Cygwin Windows builds.
3. Supported versions of Windows always support C99_FLEXIBLE_ARRAYS,
TCP/IP Partial Keepalive, and large files. The C99 and KEEPALIVE
macros are defined in hercwind.h.
4. FTHREADS is the only threading model currently supported by the
Hercules Windows build, and it is defined in hercwind.h
5. OPTION_NO_EXTERNALGUI must be defined to exclude External GUI
support. It is not enough to leave EXTERNALGUI undefined. See
lines 149-155 in hercwind.h. This requirement reflects the fact
that the previous nmake build did not have a generator for config.h;
undefined was the normal state for most build control macros.
6. If building for distribution, Hercules CMake option WINVER _must_
be set to WINXP364 to target Windows XP SP3 64-bit.
*/
#ifdef WINDOWS_BUILD
/* For now, presume Microsoft Visual C */
# define _MSVC_ 1
#cmakedefine HAVE_PCRE @HAVE_PCRE@
/* Suppress some deprecation warnings that aren't really deprecation */
/* warnings */
# define _CRT_SECURE_NO_DEPRECATE
# define _CRT_NONSTDC_NO_DEPRECATE
/* Increase the sockets set size limit/default to be the same value as */
/* used on most non-Windows platforms (1024) */
# define FD_SETSIZE 1024
/* MSVC does not have C99 flexible arrays, nor should large file */
/* support be disabled. All supported Windows versions support it */
# undef C99_FLEXIBLE_ARRAYS
# undef DISABLE_LARGEFILE
/* Windows supports only partial TCP Keepalive */
# undef HAVE_PARTIAL_KEEPALIVE
# undef HAVE_BASIC_KEEPALIVE
/* Fthreads is an option only for non-Windows builds. Inclusion */
/* of OPTION_FTHREADS messes up the Windows build. */
# undef OPTION_FTHREADS
/* Only the executable directory should be searched for Hercules */
/* shared libraries (.DLL). The HTTP server */
# undef MODULESDIR
# undef PKGDATADIR
# ifndef EXTERNALGUI
# define OPTION_NO_EXTERNALGUI
# endif
/* If PCRE has been built (the likely case), then the name of the */
/* pcreposix.h header needs to be defined in PCRE_INCNAME. Back in */
/* the old days, there was some variability in the header name. There */
/* is no longer, but source compatibility compels this definition. */
# if defined(HAVE_PCRE)
# define PCRE_INCNAME "pcreposix.h"
# endif
#cmakedefine WINVER @WINVER@
#cmakedefine _WIN32_WINNT @_WIN32_WINNT@
#cmakedefine NTDDI_VERSION @NTDDI_VERSION@
#endif /* Windows build */
/*
*********************************************************************
End of config.h generated by CMake
*********************************************************************
*/