1 dnl -------------------------------------------------------------------------
2 dnl $Id: config_h.m4 82833 2008-09-25 18:28:53Z jtc $
6 dnl ACE M4 include file which contains preprocessor constants
7 dnl and other items to be place in the generated ace/config.h
10 dnl Please try to avoid adding new autoheader templates to this
11 dnl file, as they get included in both ACE and TAO config.h.in
12 dnl files, even though the cooresponding feature tests are only
13 dnl included in the ACE configure script. Put the autoheader
14 dnl template in a AC_DEFUN used for the feature test, or use the
15 dnl AC_DEFINE macro's third argument.
17 dnl -------------------------------------------------------------------------
19 dnl Copyright (C) 2002, 2003 Ossama Othman
21 dnl All Rights Reserved
23 dnl This library is free software; you can redistribute it and/or
24 dnl modify it under the current ACE distribution terms.
26 dnl This library is distributed in the hope that it will be useful,
27 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
28 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
30 dnl Prepare the ace/config.h.in template.
32 dnl Usage: ACE_PREP_CONFIG_HEADER
33 AC_DEFUN([ACE_PREP_CONFIG_HEADER],
35 dnl Text to be placed at the top of the `ace/config.h' header.
40 // ACE configuration header file
45 dnl Text to be placed at the bottom of the `ace/config.h' header.
47 dnl @note Do not remove the "] [" between the words "Local Variables".
48 dnl The generated Emacs "Local Variables" block will not contain
49 dnl those characters. They are merely interpreted by M4 as two
50 dnl concatenated text blocks. This is necessary to prevent
51 dnl Emacs from inadvertently applying the "Local Variables"
52 dnl block being placed in the generated "config.h" header to
53 dnl this Autoconf/M4 file.
57 #endif /* ACE_CONFIG_H */
67 dnl ACE currently doesn't use these; however the configure script does
68 AH_TEMPLATE([ACE_LACKS_UNBUFFERED_STREAMBUF],[])
69 AH_TEMPLATE([ACE_HAS_STDCPP_STL_INCLUDES],[])
71 AH_TEMPLATE([ACE_HAS_NEW_NO_H],[Platform provides new style C++ <new> header])
72 AH_TEMPLATE([ACE_HAS_STDEXCEPT_NO_H],[Platform provides C++ <stdexcept> header])
74 dnl Deprecated! (or soon to be?)
75 AH_TEMPLATE([ACE_HAS_OSF1_GETTIMEOFDAY],
76 [timezone* 2nd parameter & no prototype])
77 AH_TEMPLATE([ACE_HAS_LYNXOS_SIGNALS],[])
78 AH_TEMPLATE([ACE_HAS_TANDEM_SIGNALS],[])
80 AH_TEMPLATE([PTHREAD_STACK_MIN],[])
82 dnl ///////////////////// OSSAMA'S NEW STUFF ////////////////// */
83 dnl THIS STUFF WILL REPLACE THE ABOVE OLDER STUFF AND/OR WILL BE MERGED INTO IT
86 dnl /* results from checks for programs */
87 dnl /* results from checks for libraries */
88 dnl /* results from checks for header files */
89 dnl /* results from checks for typedefs */
90 dnl /* results from checks for structures */
91 dnl /* results from checks for variables */
92 dnl /* results from checks for compiler characteristics */
93 dnl /* results from checks for library functions */
94 dnl /* results from checks for system services */
96 dnl AIX specific configuration parameters
97 AH_TEMPLATE([AIX],[Configure for use on AIX])
99 dnl FreeBSD specific configuration parameters
102 dnl HP/UX specific configuration parameters
103 AH_TEMPLATE([HPUX],[Configure for use on HP-UX])
104 AH_TEMPLATE([HPUX_10],[Configure for use on HP-UX 10])
105 AH_TEMPLATE([HPUX_11],[Configure for use on HP-UX 11])
107 dnl Irix specific configuration parameters
108 AH_TEMPLATE([IRIX5],[Configure for use on Irix 5])
109 AH_TEMPLATE([IRIX6],[Configure for use on Irix 6])
110 AH_TEMPLATE([ACE_HAS_IRIX62_THREADS],
111 [Platform supports the very odd IRIX 6.2 threads...])
113 dnl Linux specific configuration parameters
116 dnl LynxOS specific configuration parameters
117 AH_TEMPLATE([__NO_INCLUDE_WARN__],[])
119 dnl MVS specific configuration parameters
122 dnl NetBSD specific configuration parameters
125 dnl OSF/1 and Digital Unix specific configuration parameters
126 AH_TEMPLATE([DEC_CXX],[])
127 AH_TEMPLATE([DIGITAL_UNIX],[Configure for use on Digital Unix])
129 dnl SCO specific configuration parameters
130 AH_TEMPLATE([SCO],[])
132 dnl Tandem specific configuration parameters
135 dnl UnixWare specific configuration parameters
136 AH_TEMPLATE([UNIXWARE],[Configure for use on UnixWare])
137 AH_TEMPLATE([UNIXWARE_2_0],[])
138 AH_TEMPLATE([UNIXWARE_2_1],[])
139 AH_TEMPLATE([UNIXWARE_7_1],[])
140 AH_TEMPLATE([__IOCTL_VERSIONED__],[])
142 dnl VXWorks specific configuration parameters
143 AH_TEMPLATE([VXWORKS],[Configure for use on VxWorks])
145 dnl Win32 specific configuration parameters
146 AH_TEMPLATE([ACE_WIN32],[Configure for use on Win32])
148 AH_TEMPLATE([ACE_DISABLE_DEBUG_DLL_CHECK],
149 [Define this if you don't want debug version ACE search for debug version
150 DLLs first before looking for the DLL names specified.])
152 AH_TEMPLATE([ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS],
153 [Platform/compiler supports Win32 structural exceptions.])
155 AH_TEMPLATE([ACE_WSOCK_VERSION],
156 [A parameter list indicating the version of WinSock (e.g., "1, 1" is
159 AH_TEMPLATE([ACE_HAS_MFC],[Platform supports Microsoft Foundation Classes])
161 AH_TEMPLATE([ACE_USES_STATIC_MFC],
162 [When linking MFC as a static library is desired])
164 AH_TEMPLATE([ACE_HAS_CANCEL_IO],
165 [Platform supports the Win32 CancelIO() function. (WinNT 4.0 and beyond)])
167 AH_TEMPLATE([ACE_HAS_WIN32_TRYLOCK],
168 [The Win32 platform support TryEnterCriticalSection(). (WinNT 4.0 and
171 AH_TEMPLATE([ACE_HAS_WINSOCK2],[The Win32 platform supports WinSock 2.0.])
173 AH_TEMPLATE([ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL],
174 [For Win32: Use Select_Reactor as default implementation of Reactor
175 instead of WFMO_Reactor.])
177 AH_TEMPLATE([ACE_HAS_DLL],[Build ACE using the frigging PC DLL nonsense...])
179 AH_TEMPLATE([ACE_HAS_STRICT],[Use the STRICT compilation mode on Win32.])
181 AH_TEMPLATE([CYGWIN32], [GNU Win32 environement])
185 AH_TEMPLATE([ACE_DEFAULT_BASE_ADDR],[])
186 AH_TEMPLATE([ACE_DEFAULT_BASE_ADDRL],[])
187 AH_TEMPLATE([ACE_DEFAULT_CLOSE_ALL_HANDLES],[])
188 AH_TEMPLATE([ACE_DEFAULT_MAX_SOCKET_BUFSIZ],[])
189 AH_TEMPLATE([ACE_DEFAULT_SELECT_REACTOR_SIZE],[The default number of handles the select()-based reactor should handle])
190 AH_TEMPLATE([ACE_MALLOC_ALIGN],[])
191 AH_TEMPLATE([ACE_MAP_PRIVATE],[])
192 AH_TEMPLATE([ACE_THR_PRI_FIFO_DEF],[])
193 AH_TEMPLATE([ACE_TIMER_SKEW],[])
194 AH_TEMPLATE([IP_ADD_MEMBERSHIP],[])
195 AH_TEMPLATE([IP_DROP_MEMBERSHIP],[])
197 AH_TEMPLATE([ACE_LOFF_T_TYPEDEF],[typedef for ACE_LOFF_T])
199 AH_TEMPLATE([__ACE_INLINE__],[Enable ACE inlining])
201 AH_TEMPLATE([ACE_NO_INLINE],[Explicitly disable ACE inlining])
203 AH_TEMPLATE([ACE_COMPILE_TIMEPROBES],[Enable ACE_Timeprobes])
205 AH_TEMPLATE([ACE_HAS_GNU_REPO],
206 [Enable use of GNU template repositories. GNU C++ w/repo patch
209 AH_TEMPLATE([ACE_HAS_AIO_CALLS],[Platform supports Asynchronous IO calls])
211 AH_TEMPLATE([ACE_HAS_ALT_CUSERID],
212 [Use ACE's alternate cuserid() implementation since a system
213 cuserid() may not exist, or it is not desirable to use it. The
214 implementation requires ACE_LACKS_PWD_FUNCTIONS to be undefined and
215 that the geteuid() system call exists.])
217 AH_TEMPLATE([ACE_DEFAULT_THREAD_KEYS],
218 [Number of TSS keys, with ACE_HAS_TSS_EMULATION _only_. Defaults to 64.])
220 AH_TEMPLATE([ACE_THREADS_DONT_INHERIT_LOG_MSG],
221 [Specify this if you don't want threads to inherit parent thread's
222 ACE_Log_Msg properties.])
224 AH_TEMPLATE([ACE_HAS_PRIOCNTL],[OS has priocntl (2)])
226 AH_TEMPLATE([ACE_HAS_RLIMIT_RESOURCE_ENUM],
227 [Platform has enum instead of int for first argument to ::{get,set}rlimit ().
228 The value of this macro is the enum definition, e.g.,
229 enum __rlimit_resource, for Linux glibc 2.0.])
231 AH_TEMPLATE([ACE_HAS_RUSAGE_WHO_ENUM],
232 [Platform has enum instead of int for first argument to ::getrusage (). The
233 value of this macro is the enum definition, e.g., enum __rusage_who, for
236 AH_TEMPLATE([ACE_HAS_STDARG_THR_DEST],
237 [Platform has void (*)(...) prototype for pthread_key_create()
238 destructor (e.g., LynxOS).])
240 AH_TEMPLATE([ACE_HAS_STL_MAP_CONFLICT],
241 [Used when users want to compile ACE with STL and STL map class
242 conflicts with <net/if.h> map struct.])
244 AH_TEMPLATE([ACE_HAS_STL_QUEUE_CONFLICT],
245 [Used when users want to compile ACE with STL and STL queue class
246 conflicts with <netinet/in.h> queue struct.])
248 AH_TEMPLATE([ACE_HAS_4_4BSD_SENDMSG_RECVMSG],
249 [Platform has BSD 4.4 sendmsg()/recvmsg() APIs.])
251 AH_TEMPLATE([ACE_HAS_P_READ_WRITE],
252 [Platform has pread() and pwrite() support.])
254 AH_TEMPLATE([ACE_HAS_AIX_HI_RES_TIMER],
255 [Platform has AIX4 ::read_real_time()])
257 AH_TEMPLATE([ACE_HAS_ALLOCA],[Compiler/platform supports alloca().])
259 AH_TEMPLATE([ACE_HAS_ALLOCA_H],[Compiler/platform has <alloca.h>])
261 AH_TEMPLATE([ACE_HAS_AUTOMATIC_INIT_FINI],
262 [Compiler/platform correctly calls init()/fini() for shared libraries.])
264 AH_TEMPLATE([ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR],
265 [Compiler handles explicit calling of template destructor correctly.])
267 AH_TEMPLATE([ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS],
268 [Compiler requires template args when explicitly calling template destructor.])
270 AH_TEMPLATE([ACE_HAS_BROKEN_MAP_FAILED],
271 [Platform doesn't cast MAP_FAILED to a (void *).])
273 AH_TEMPLATE([ACE_HAS_BROKEN_CTIME],
274 [Compiler/platform uses macro for ctime (e.g., MVS)])
276 AH_TEMPLATE([ACE_HAS_BROKEN_DGRAM_SENDV],
277 [Platform sendv() does not work properly with datagrams, i.e. it
278 fails when the iovec size is IOV_MAX.])
280 AH_TEMPLATE([ACE_HAS_BROKEN_MSG_H],
281 [Platform headers don't support <msg.h> prototypes])
283 AH_TEMPLATE([ACE_HAS_BROKEN_MMAP_H],
284 [HP/UX does not wrap the mmap(2) header files with extern "C".])
286 AH_TEMPLATE([ACE_HAS_BROKEN_POSIX_TIME],
287 [Platform defines struct timespec in <sys/timers.h>])
289 AH_TEMPLATE([ACE_HAS_BROKEN_R_ROUTINES],
290 [Platform defines ctime_r, asctime_r, rand_r and getpwnam_r as macros])
292 AH_TEMPLATE([ACE_HAS_BROKEN_RANDR],
293 [OS/compiler's header files are inconsistent with libC definition of
296 AH_TEMPLATE([ACE_HAS_BROKEN_T_ERROR],
297 [Compiler/platform has the wrong prototype for t_error(), i.e.,
298 t_error(char *) rather than t_error(const char *).])
300 AH_TEMPLATE([ACE_HAS_BSTRING],
301 [Platform has <bstring.h> (which contains bzero() prototype)])
303 AH_TEMPLATE([ACE_HAS_CHARPTR_DL],
304 [OS/platform uses char * for dlopen/dlsym args, rather than const char *.])
306 AH_TEMPLATE([ACE_HAS_CHARPTR_SOCKOPT],
307 [OS/platform uses char * for sockopt, rather than const char *])
309 AH_TEMPLATE([ACE_HAS_CONFLICTING_XTI_MACROS],
310 [OS header files have some problems with XTI (HP/UX 11).])
312 AH_TEMPLATE([ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES],
313 [Prototypes for both signal() and struct sigaction are consistent.])
315 AH_TEMPLATE([ACE_HAS_CONST_CHAR_SWAB],
316 [Platform has swab(const char*, char*, ssize_t) variant.])
318 AH_TEMPLATE([ACE_HAS_CPLUSPLUS_HEADERS],
319 [Compiler/platform has correctly prototyped header files.])
321 AH_TEMPLATE([ACE_HAS_DIRENT],
322 [Platform supports operations on directories via struct dirent,
325 AH_TEMPLATE([ACE_HAS_EXCEPTIONS],[Compiler supports C++ exception handling.])
327 AH_TEMPLATE([ACE_HAS_FL],[Platform has Fast-Light (FL) toolkit installed.])
329 AH_TEMPLATE([ACE_HAS_GETPAGESIZE],
330 [Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must
331 be defined, except on Win32).])
333 AH_TEMPLATE([ACE_HAS_GNU_CSTRING_H],
334 [Denotes that GNU has cstring.h as standard which redefines memchr()])
336 AH_TEMPLATE([ACE_HAS_INTRINSIC_INTERLOCKED],
337 [Platform supports the intrinsic interlocked optimizations.])
339 AH_TEMPLATE([ACE_HAS_GPERF],
340 [The GPERF utility is compiled for this platform])
342 AH_TEMPLATE([ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT],
343 [Optimize ACE_Handle_Set::count_bits for select() operations (common case)])
345 AH_TEMPLATE([ACE_HAS_INLINED_OSCALLS],[
346 Inline all the static class OS methods to remove call overhead
347 Note: This gets defined by OS.h if __ACE_INLINE__ is defined])
349 AH_TEMPLATE([ACE_HAS_IP_MULTICAST],[Platform supports IP multicast])
351 AH_TEMPLATE([ACE_HAS_IPV6],[Platform supports IPv6])
352 AH_TEMPLATE([ACE_USES_IPV4_IPV6_MIGRATION],
353 [Enable IPv6 support on platforms that don't have IPv6 turned on by default])
355 AH_TEMPLATE([ACE_HAS_NEW_NOTHROW],
356 [Compiler supports new (std::nothrow)])
358 AH_TEMPLATE([ACE_HAS_NONCONST_SWAB],
359 [Platform has swab(char*, char*, ssize_t) variant.])
361 AH_TEMPLATE([ACE_HAS_NONSTATIC_OBJECT_MANAGER],
362 [Causes the ACE_Object_Manager instance to be created in
363 main (int, char *[]), instead of as a static (global) instance.])
365 AH_TEMPLATE([ACE_HAS_THR_KEYDELETE],
366 [Platform supports thr_keydelete (e.g,. UNIXWARE)])
368 AH_TEMPLATE([ACE_HAS_THR_MINSTACK],
369 [Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem).])
371 AH_TEMPLATE([ACE_HAS_LIMITED_RUSAGE_T],
372 [The rusage_t structure has only two fields.])
374 AH_TEMPLATE([ACE_HAS_BIG_FD_SET],
375 [Compiler/platform has "big" fd_set, i.e. large number of bits set
376 in fd_set passed back from select().])
378 AH_TEMPLATE([ACE_HAS_LONG_MAP_FAILED],
379 [Platform defines MAP_FAILED as a long constant.])
381 AH_TEMPLATE([ACE_HAS_MALLOC_STATS], [Enabled malloc statistics collection.])
383 AH_TEMPLATE([ACE_USES_OLD_IOSTREAMS],
384 [Some files, such as ace/streams.h, want to include new style C++
385 stream headers. These headers are iomanip, ios, iostream, istream,
386 ostream, fstream and streambuf. If _all_ of these headers aren't
387 available, then assume that only iostream.h and fstream.h are
390 AH_TEMPLATE([ACE_HAS_MSG],[Platform supports recvmsg and sendmsg])
392 AH_TEMPLATE([ACE_HAS_MT_SAFE_MKTIME],
393 [Platform supports MT safe mktime() call (do any of them?)])
395 AH_TEMPLATE([ACE_HAS_MT_SAFE_SOCKETS],
396 [Sockets may be called in multi-threaded programs])
398 AH_TEMPLATE([ACE_HAS_NONCONST_GETBY],
399 [Platform uses non-const char * in calls to gethostbyaddr,
400 gethostbyname, getservbyname])
402 AH_TEMPLATE([ACE_HAS_NONCONST_MSGSND],
403 [Platform has a non-const parameter to msgsnd() (e.g., SCO).])
405 AH_TEMPLATE([ACE_HAS_NONCONST_READV],
406 [Platform omits const qualifier from iovec parameter in readv() prototype.])
408 AH_TEMPLATE([ACE_HAS_NONCONST_SELECT_TIMEVAL],
409 [Platform's select() uses non-const timeval* (only found on Linux
412 AH_TEMPLATE([ACE_HAS_NONCONST_SENDMSG],
413 [Platform omits const qualifier from msghdr parameter in sendmsg()
416 AH_TEMPLATE([ACE_HAS_NONCONST_SETRLIMIT],
417 [Platform omits const qualifier from rlimit parameter in setrlimit()
420 AH_TEMPLATE([ACE_HAS_NONCONST_WRITEV],
421 [Platform omits const qualifier from iovec parameter in writev() prototype.])
423 AH_TEMPLATE([ACE_HAS_OLD_MALLOC],
424 [Compiler/platform uses old malloc()/free() prototypes (ugh)])
426 AH_TEMPLATE([ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R],
427 [Uses ctime_r & asctime_r with only two parameters vs. three.])
429 AH_TEMPLATE([ACE_HAS_ONLY_SCHED_OTHER],
430 [Platform, e.g., Solaris 2.5, only supports SCHED_OTHER POSIX
433 AH_TEMPLATE([ACE_HAS_OPTIMIZED_MESSAGE_QUEUE],
434 [Use the semaphore implementation of ACE_Message_Queue rather than
435 the emulated condition variable (NT and VxWorks).])
437 AH_TEMPLATE([ACE_HAS_OSF_TIMOD_H],
438 [Platform supports the OSF TLI timod STREAMS module])
440 AH_TEMPLATE([ACE_HAS_POLL],[Platform contains <poll.h>])
442 AH_TEMPLATE([ACE_HAS_POSITION_INDEPENDENT_POINTERS],
443 [Platform supports "position-independent" features provided by
444 ACE_Based_Pointer<>.])
446 AH_TEMPLATE([ACE_HAS_POSIX_GETPWNAM_R],
447 [Platform supports POSIX getpwnam_r() function])
449 AH_TEMPLATE([ACE_HAS_POSIX_NONBLOCK],
450 [Platform supports POSIX O_NONBLOCK semantics])
452 AH_TEMPLATE([ACE_HAS_POSIX_REALTIME_SIGNALS],
453 [Platform supports POSIX realtime signals])
455 AH_TEMPLATE([ACE_HAS_POSIX_SEM],
456 [Platform supports POSIX real-time semaphores (e.g., VxWorks and
459 AH_TEMPLATE([ACE_HAS_POSIX_SEM_TIMEOUT],
460 [Platform supports timed POSIX semaphore acquisitions (sem_timedwait()).])
462 AH_TEMPLATE([ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION],
463 [Do not include emulation for timed semaphore acquisitions.])
465 AH_TEMPLATE([ACE_HAS_POSIX_TIME],
466 [Platform supports the POSIX struct timespec type])
468 AH_TEMPLATE([ACE_HAS_PROC_FS],
469 [Platform supports the /proc file system and defines tid_t
472 AH_TEMPLATE([ACE_HAS_PTHREADS_UNIX98_EXT],
473 [Platform has the UNIX98 extensions to Pthreads (rwlocks)])
475 AH_TEMPLATE([ACE_HAS_PTHREAD_PROCESS_ENUM],
476 [pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
477 PTHREAD_PROCESS_SHARED values])
479 AH_TEMPLATE([ACE_HAS_PURIFY],[Purify'ing. Defined on command line.])
481 AH_TEMPLATE([ACE_HAS_QUANTIFY],[Quantify'ing. Defined on command line.])
483 AH_TEMPLATE([ACE_HAS_RECURSIVE_MUTEXES],
484 [Mutexes are inherently recursive (e.g., Win32) ])
486 AH_TEMPLATE([ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS],
487 [Platform will recurse infinitely on thread exits from TSS cleanup
488 routines (e.g., AIX)])
490 AH_TEMPLATE([ACE_HAS_SIGACTION_CONSTP2],
491 [Platform's sigaction() function takes const sigaction* as 2nd parameter])
493 AH_TEMPLATE([ACE_HAS_REENTRANT_FUNCTIONS],
494 [Platform supports reentrant functions (i.e., all the POSIX *_r
497 AH_TEMPLATE([ACE_HAS_X86_STAT_MACROS],
498 [Solaris for intel uses macros for fstat() and stat(), these are
499 wrappers for _fxstat() and _xstat() uses of the macros. Causes
500 compile and runtime problems.])
502 AH_TEMPLATE([ACE_HAS_XPG4_MULTIBYTE_CHAR],
503 [Platform has support for multi-byte character support compliant
504 with the XPG4 Worldwide Portability Interface wide-character
507 AH_TEMPLATE([ACE_LACKS_AUTO_MMAP_REPLACEMENT],
508 [No system support for replacing any previous mappings.])
510 AH_TEMPLATE([ACE_LACKS_AUTO_PTR],
511 [Platform lacks support for the standard C++ auto_ptr class])
513 AH_TEMPLATE([ACE_AUTO_PTR_LACKS_RESET],
514 [Compiler/platform standard C++ auto_ptr implementation lacks
517 AH_TEMPLATE([ACE_LACKS_READDIR_R],[Platform lacks readdir_r()])
519 AH_TEMPLATE([ACE_LACKS_INLINE_FUNCTIONS],
520 [Platform can't handle "inline" keyword correctly.])
522 AH_TEMPLATE([ACE_LACKS_IOSTREAM_TOTALLY],
523 [iostreams are not supported adequately on the given platform.])
525 AH_TEMPLATE([ACE_LACKS_NETDB_REENTRANT_FUNCTIONS],
526 [Platform does not support reentrant netdb functions
527 (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
528 gethostbyname_r, getservbyname_r).])
530 AH_TEMPLATE([ACE_HAS_REGEX],
531 [Platform supports the POSIX regular expression library])
533 AH_TEMPLATE([ACE_HAS_SEMUN],
534 [Compiler/platform defines a union semun for SysV shared memory ])
536 AH_TEMPLATE([ACE_HAS_SHM_OPEN],[Platform has shm_open()])
537 AH_TEMPLATE([ACE_SHM_OPEN_REQUIRES_ONE_SLASH],[shm_open() requires a leading slash in name])
539 AH_TEMPLATE([ACE_HAS_SIGISMEMBER_BUG],
540 [Platform has bug with sigismember() (HP/UX 11).])
542 AH_TEMPLATE([ACE_HAS_SIG_MACROS],
543 [Platform/compiler has macros for sig{empty,fill,add,del}set (e.g.,
546 AH_TEMPLATE([ACE_HAS_SIGNAL_OBJECT_AND_WAIT],
547 [Platform supports the Win32 SignalObjectAndWait() function (WinNT
550 AH_TEMPLATE([ACE_HAS_SIG_C_FUNC],
551 [Compiler requires extern "C" functions for signals.])
553 AH_TEMPLATE([ACE_HAS_SIZET_SOCKET_LEN],
554 [OS/compiler uses size_t * rather than int * for socket lengths])
556 AH_TEMPLATE([ACE_HAS_SOCKADDR_MSG_NAME],
557 [Platform requires (struct sockaddr *) for msg_name field of
560 AH_TEMPLATE([ACE_HAS_THR_YIELD],[Platform has thr_yield()])
562 AH_TEMPLATE([ACE_HAS_STANDARD_CPP_LIBRARY],
563 [Platform/compiler supports Standard C++ Library])
565 AH_TEMPLATE([ACE_HAS_STREAMS],[Platform supports STREAMS])
567 AH_TEMPLATE([ACE_HAS_STREAM_PIPES],[Platform supports STREAM pipes])
569 AH_TEMPLATE([ACE_LACKS_STROPTS_H],[Platform lacks stropts.h])
571 AH_TEMPLATE([ACE_HAS_STRING_CLASS],
572 [Platform/Compiler supports a String class (e.g., GNU or Win32).])
574 AH_TEMPLATE([ACE_HAS_STRINGS],
575 [Platform has <strings.h> (which contains bzero() prototype)])
577 AH_TEMPLATE([ACE_HAS_STRUCT_NETDB_DATA],
578 [Compiler/platform has strange hostent API for socket *_r() calls])
580 AH_TEMPLATE([ACE_HAS_SVR4_DYNAMIC_LINKING],
581 [Compiler/platform supports SVR4 dynamic linking semantics])
583 AH_TEMPLATE([ACE_HAS_SVR4_GETTIMEOFDAY],
584 [Compiler/platform supports SVR4 gettimeofday() prototype but
585 doesn't have a prototype])
587 AH_TEMPLATE([ACE_HAS_SVR4_SIGNAL_T],
588 [Compiler/platform supports SVR4 signal typedef.])
590 AH_TEMPLATE([ACE_HAS_SVR4_TLI],
591 [Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff).])
593 AH_TEMPLATE([ACE_HAS_SYSV_IPC],
594 [Platform supports System V IPC (most versions of UNIX, but not Win32)])
596 AH_TEMPLATE([ACE_HAS_SYS_ERRLIST],
597 [Platform/compiler supports _sys_errlist symbol])
599 AH_TEMPLATE([ACE_HAS_SYS_SIGLIST],
600 [Compiler/platform supports _sys_siglist array])
602 AH_TEMPLATE([ACE_HAS_SYS_XTI_H],[Platform provides <sys/xti.h> header])
604 AH_TEMPLATE([ACE_HAS_TEMPLATE_TYPEDEFS],
605 [Compiler implements templates that support typedefs inside of
606 classes used as formal arguments to a template class.])
608 AH_TEMPLATE([ACE_HAS_THREADS],[Platform supports threads.])
610 AH_TEMPLATE([ACE_HAS_THREAD_SAFE_ACCEPT],
611 [Platform allows multiple threads to call accept() on the same port
614 AH_TEMPLATE([ACE_HAS_THREAD_SELF],
615 [Platform has thread_self() rather than pthread_self() (e.g.,
616 DCETHREADS and AIX)])
618 AH_TEMPLATE([ACE_HAS_THREAD_SPECIFIC_STORAGE],
619 [Compiler/platform has thread-specific storage])
621 AH_TEMPLATE([ACE_HAS_THR_C_DEST],
622 [The pthread_keycreate() routine *must* take extern C functions.])
624 AH_TEMPLATE([ACE_HAS_THR_C_FUNC],
625 [The pthread_create() routine *must* take extern C functions.])
627 AH_TEMPLATE([ACE_HAS_TIMEZONE_GETTIMEOFDAY],
628 [Platform/compiler supports timezone * as second parameter to
629 gettimeofday() and has a prototype.])
631 AH_TEMPLATE([ACE_HAS_TIMOD_H],
632 [Platform supports TLI timod STREAMS module])
634 AH_TEMPLATE([ACE_HAS_TIUSER_H],[Platform supports TLI tiuser header])
636 AH_TEMPLATE([ACE_HAS_TIUSER_H_BROKEN_EXTERN_C],
637 [Platform does not protect <tiuser.h> with extern "C"])
639 AH_TEMPLATE([ACE_HAS_TLI],
640 [Platform supports TLI. Also see ACE_TLI_TCP_DEVICE.])
642 AH_TEMPLATE([ACE_HAS_TLI_PROTOTYPES],
643 [Platform provides TLI function prototypes])
645 AH_TEMPLATE([ACE_HAS_TSS_EMULATION],
646 [ACE provides TSS emulation. See also ACE_DEFAULT_THREAD_KEYS.])
648 AH_TEMPLATE([ACE_HAS_UCONTEXT_T],
649 [Platform supports ucontext_t (which is used in the extended signal API).])
651 AH_TEMPLATE([ACE_HAS_UNIXWARE_SVR4_SIGNAL_T],
652 [Has inconsistent SVR4 signal stuff, but not the same as the other
655 AH_TEMPLATE([ACE_HAS_WCHAR],[Platform/compiler supports wchar_t])
656 AH_TEMPLATE([ACE_USES_WCHAR],[ACE is built to use wide characters internally])
658 AH_TEMPLATE([ACE_HAS_VERBOSE_NOTSUP],
659 [Prints out console message in ACE_NOTSUP. Useful for tracking down
660 origin of ACE_NOTSUP.])
662 AH_TEMPLATE([ACE_HAS_VOIDPTR_GETTIMEOFDAY],
663 [Platform/compiler supports void * as second parameter to
664 gettimeofday() and has a prototype.])
666 AH_TEMPLATE([ACE_HAS_VOIDPTR_MMAP],[Platform requires void * for mmap().])
668 AH_TEMPLATE([ACE_HAS_VOIDPTR_SOCKOPT],
669 [OS/compiler uses void * arg 4 setsockopt() rather than const char *])
671 AH_TEMPLATE([ACE_HAS_XLI],[Platform has the XLI version of TLI])
673 AH_TEMPLATE([ACE_HAS_XT],[Platform has Xt Intrinsics Toolkit])
675 AH_TEMPLATE([ACE_LACKS_MOTIF],
676 [Platform does not have Motif X toolkit available])
678 AH_TEMPLATE([ACE_HAS_XTI],
679 [Platform has XTI (X/Open-standardized superset of TLI). Implies
680 ACE_HAS_TLI but uses a different header file.])
682 AH_TEMPLATE([ACE_LACKS_ACE_IOSTREAM],
683 [Platform can not build ace/IOStream{,_T}.cpp. This does not
684 necessarily mean that the platform does not support iostreams.])
686 AH_TEMPLATE([ACE_LACKS_ACE_CODECS],
687 [Do not compile support for the "Codecs" ACE features.])
689 AH_TEMPLATE([ACE_LACKS_ACE_OTHER],
690 [Do not compile support for the "other" ACE features, such as CORBA
691 handling, name services, and QoS.])
693 AH_TEMPLATE([ACE_LACKS_ACE_SVCCONF],
694 [Do not compile support for the ACE Service Configurator.])
696 AH_TEMPLATE([ACE_LACKS_ACE_TOKEN],
697 [Do not compile support for the ACE Token feature.])
699 AH_TEMPLATE([ACE_LACKS_ACE_UUID],
700 [Do not compile support for the ACE UUID feature.])
702 AH_TEMPLATE([ACE_LACKS_COND_T],
703 [Platform lacks condition variables (e.g., Win32 and VxWorks)])
705 AH_TEMPLATE([ACE_LACKS_COND_TIMEDWAIT_RESET],
706 [pthread_cond_timedwait does *not* reset the time argument when
707 the lock is acquired.])
709 AH_TEMPLATE([ACE_LACKS_CONST_STRBUF_PTR],
710 [Platform uses struct strbuf * rather than const struct strbuf *
713 AH_TEMPLATE([ACE_LACKS_CONST_TIMESPEC_PTR],
714 [Platform forgot const in cond_timewait (e.g., HP/UX).])
716 AH_TEMPLATE([ACE_LACKS_EXEC],
717 [Platform lacks the exec() family of system calls (e.g., Win32,
720 AH_TEMPLATE([ACE_LACKS_GETSERVBYNAME],
721 [Platforms lacks getservbyname() (e.g., VxWorks and Chorus).])
723 AH_TEMPLATE([ACE_LACKS_IOSTREAM_FX],
724 [iostream header does not declare ipfx (), opfx (), etc.])
726 AH_TEMPLATE([ACE_LACKS_LINEBUFFERED_STREAMBUF],
727 [Platform lacks streambuf "linebuffered ()".])
729 AH_TEMPLATE([ACE_LACKS_LONGLONG_T],
730 [Compiler/platform does not support the unsigned long long datatype.])
732 AH_TEMPLATE([ACE_LACKS_U_LONGLONG_T],
733 [Platform does not have u_longlong_t typedef])
735 AH_TEMPLATE([ACE_LACKS_MMAP],
736 [The platform doesn't have mmap(2) (e.g., SCO UNIX).])
738 AH_TEMPLATE([ACE_LACKS_MODE_MASKS],
739 [Platform/compiler doesn't have open() mode masks.])
741 AH_TEMPLATE([ACE_LACKS_MSG_ACCRIGHTS],
742 [Platform defines ACE_HAS_MSG, but lacks msg_accrights{len}.])
744 AH_TEMPLATE([ACE_LACKS_NULL_PTHREAD_STATUS],
745 [OS requires non-null status pointer for pthread_join ()])
747 AH_TEMPLATE([ACE_HAS_MUTEX_TIMEOUTS],
748 [Compiler supports timed mutex acquisitions (e.g. pthread_mutex_timedlock()).])
750 AH_TEMPLATE([ACE_LACKS_NAMED_POSIX_SEM],
751 [Platform lacks named POSIX semaphores (e.g., Chorus)])
753 AH_TEMPLATE([ACE_LACKS_RLIMIT],
754 [Platform/compiler lacks {get,set}rlimit() function (e.g., VxWorks,
755 Chorus, and SCO UNIX)])
757 AH_TEMPLATE([ACE_LACKS_PLACEMENT_OPERATOR_DELETE],
758 [Compiler doesn't support placement operator delete(void *, void *).])
760 AH_TEMPLATE([ACE_LACKS_PRAGMA_ONCE],
761 [Compiler complains about use of obsolete "pragma once"])
763 AH_TEMPLATE([ACE_LACKS_PTHREAD_CANCEL],[Platform lacks pthread_cancel()])
765 AH_TEMPLATE([ACE_LACKS_PWD_FUNCTIONS],
766 [Platform lacks, getpwnam(), etc.])
768 AH_TEMPLATE([ACE_LACKS_PWD_REENTRANT_FUNCTIONS],
769 [Platform lacks getpwnam_r() methods (e.g., SGI 6.2).])
771 AH_TEMPLATE([ACE_LACKS_SETDETACH],
772 [Platform lacks pthread_attr_setdetachstate() (e.g., HP/UX 10.x)])
774 AH_TEMPLATE([ACE_LACKS_SETSCHED],
775 [Platform lacks pthread_attr_setsched() (e.g. MVS)])
777 AH_TEMPLATE([ACE_LACKS_SIGNED_CHAR],
778 [Platform lacks "signed char" type (broken!)])
780 AH_TEMPLATE([ACE_LACKS_SYS_MSG_H],
781 [Platform lacks sys/msg.h (e.g., Chorus and VxWorks)])
783 AH_TEMPLATE([ACE_LACKS_SYSV_MSQ_PROTOS],
784 [Platform lacks SYSV message queue prototypes])
786 AH_TEMPLATE([ACE_LACKS_SYSV_SHMEM],
787 [Platform lacks System V shared memory (e.g., Win32 and VxWorks)])
789 AH_TEMPLATE([ACE_LACKS_SOCKET_BUFSIZ],
790 [Platform doesn't support SO_SNDBUF/SO_RCVBUF (used in TAO)])
792 AH_TEMPLATE([ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES],
793 [Compiler doesn't support static data member templates])
795 AH_TEMPLATE([ACE_LACKS_T_ERRNO],[Header files lack t_errno for TLI])
797 AH_TEMPLATE([ACE_LACKS_TCP_NODELAY],[OS does not support TCP_NODELAY])
799 AH_TEMPLATE([ACE_LACKS_THREAD_PROCESS_SCOPING],
800 [Platform lacks pthread_attr_setscope()])
802 AH_TEMPLATE([ACE_LACKS_TIMESPEC_T],
803 [Platform does not define timepec_t as a typedef for struct timespec.])
805 AH_TEMPLATE([ACE_LACKS_STRTOK_R_PROTOTYPE],
806 [Platform/compiler lacks the strtok_r() prototype])
808 AH_TEMPLATE([ACE_LACKS_PREAD_PROTOTYPE],
809 [Platform/compiler lacks the pread() and pwrite() prototypes])
811 AH_TEMPLATE([ACE_LACKS_CHAR_RIGHT_SHIFTS],
812 [Compiler does not have any istream operator>> for chars, u_chars, or
815 AH_TEMPLATE([ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS],
816 [Compiler does not have operator>> (istream &, u_char *) or
817 operator>> (istream &, signed char *)])
819 AH_TEMPLATE([ACE_LACKS_NUMERIC_LIMITS],[Platform lacks std::numeric_limits<>])
821 AH_TEMPLATE([ACE_LACKS_UNIX_DOMAIN_SOCKETS],
822 [ACE platform has no UNIX domain sockets])
824 AH_TEMPLATE([ACE_LACKS_UNIX_SIGNALS],
825 [Platform lacks full signal support (e.g., Win32 and Chorus).])
827 AH_TEMPLATE([ACE_MAIN],
828 [Renames "main (int, char *[])", for platforms such as g++/VxWorks
829 that don't allow main. Requires the use of
830 ACE_HAS_NONSTATIC_OBJECT_MANAGER.])
832 AH_TEMPLATE([ACE_MT_SAFE],[Compile using multi-thread libraries])
834 AH_TEMPLATE([ACE_NDEBUG],[Turns off debugging features])
836 AH_TEMPLATE([ACE_NEEDS_DEV_IO_CONVERSION],
837 [Necessary with some compilers to pass ACE_TTY_IO as parameter to
840 AH_TEMPLATE([ACE_NEEDS_HUGE_THREAD_STACKSIZE],
841 [Required by platforms with small default stacks.])
843 AH_TEMPLATE([ACE_NEEDS_LWP_PRIO_SET],
844 [OS has LWPs, and when the priority of a bound thread is set, then
845 the LWP priority must be set also.])
847 AH_TEMPLATE([ACE_NEEDS_SCHED_H],
848 [Platform needs to #include <sched.h> to get thread scheduling defs.])
850 AH_TEMPLATE([ACE_NEW_THROWS_EXCEPTIONS],
851 [Compiler's 'new' throws exception on failure (ANSI C++ behavior).])
853 AH_TEMPLATE([ACE_NLOGGING],
854 [Turns off the LM_DEBUG and LM_ERROR logging macros...])
856 AH_TEMPLATE([ACE_NTRACE],[Turns off the tracing feature.])
858 AH_TEMPLATE([ACE_PAGE_SIZE],
859 [Defines the page size of the system (not used on Win32 or with
860 ACE_HAS_GETPAGESIZE).])
862 AH_TEMPLATE([ACE_REDEFINES_XTI_FUNCTIONS],
863 [Platform redefines the t_... names (UnixWare)])
865 AH_TEMPLATE([ACE_TEMPLATES_REQUIRE_PRAGMA],
866 [Compiler's template mechanism must use a pragma. This is used for
867 AIX's C++ compiler.])
869 AH_TEMPLATE([ACE_TEMPLATES_REQUIRE_SOURCE],
870 [Compiler's template mechanim must see source code (i.e., .cpp
871 files). This is used for GNU G++.])
873 AH_TEMPLATE([ACE_HAS_ICMP_SUPPORT],
874 [Defined to 1 if platform supports ICMP over raw sockets])
876 AH_TEMPLATE([ACE_NEEDS_FUNC_DEFINITIONS],
877 [Compiler requires a definition for a "hidden" function, e.g., a
878 private, unimplemented copy constructor or assignment operator.
879 The SGI C++ compiler needs this, in template classes, with
880 ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.])
882 AH_TEMPLATE([ACE_TLI_TCP_DEVICE],
883 [Device the platform uses for TCP on TLI. Only needed if not
886 AH_TEMPLATE([ACE_USE_POLL],
887 [The OS/platform supports the poll() event demultiplexor])
889 AH_TEMPLATE([ACE_HAS_EVENT_POLL],[Platform (Linux) supports event poll
892 AH_TEMPLATE([ACE_HAS_DEV_POLL],[Platform supports /dev/poll character
895 AH_TEMPLATE([ACE_USES_ASM_SYMBOL_IN_DLSYM],
896 [Platform uses assembly symbols instead of C symbols in dlsym()])
898 AH_TEMPLATE([ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB],
899 [Platform has its standard C++ library in the namespace std.])
901 dnl DSO/DLL export macros.
902 AH_TEMPLATE([ACE_HAS_CUSTOM_EXPORT_MACROS],
903 [Platform defines custom DSO/DLL symbol export macros.])
905 AH_TEMPLATE([ACE_Proper_Export_Flag],
906 [Flag that denotes the symbol should be exported from the DSO/DLL.])
908 AH_TEMPLATE([ACE_Proper_Import_Flag],
909 [Flag that denotes the symbol should be imported from the DSO/DLL.])
911 dnl ACE_EXPORT_SINGLETON_DECLARATION(T)
912 dnl ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
913 dnl ACE_IMPORT_SINGLETON_DECLARATION(T)
914 dnl ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
916 ]) dnl End ACE_PREP_CONFIG_HEADER