summaryrefslogtreecommitdiff
path: root/ACE/m4
diff options
context:
space:
mode:
authorWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
committerWilliam R. Otte <wotte@dre.vanderbilt.edu>2008-03-04 14:51:23 +0000
commite60d54b4b03648afbb79382a1157238d4ffcc330 (patch)
treebda96bf8c3a4c2875a083d7b16720533c8ffeaf4 /ACE/m4
parentdab6095386e31ea8302e88bb53b4735c6304e8c5 (diff)
downloadATCD-e60d54b4b03648afbb79382a1157238d4ffcc330.tar.gz
undoing accidental deletion
Diffstat (limited to 'ACE/m4')
-rw-r--r--ACE/m4/ace.m41546
-rw-r--r--ACE/m4/ace_defines.m448
-rw-r--r--ACE/m4/ace_func.m4148
-rw-r--r--ACE/m4/ace_functions.m427
-rw-r--r--ACE/m4/ace_headers.m435
-rw-r--r--ACE/m4/acinclude.m4602
-rw-r--r--ACE/m4/aio.m4633
-rw-r--r--ACE/m4/compiler.m4426
-rw-r--r--ACE/m4/config_h.m41056
-rw-r--r--ACE/m4/pkg.m4156
-rw-r--r--ACE/m4/platform.m4473
-rw-r--r--ACE/m4/subsets.m4770
-rw-r--r--ACE/m4/threads.m4334
-rw-r--r--ACE/m4/tls.m4220
14 files changed, 6474 insertions, 0 deletions
diff --git a/ACE/m4/ace.m4 b/ACE/m4/ace.m4
new file mode 100644
index 00000000000..c1cf7bca7b5
--- /dev/null
+++ b/ACE/m4/ace.m4
@@ -0,0 +1,1546 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl ace.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl for enabling/disabling certain ACE features.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2000, 2002 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl Macros that add ACE configuration options to a `configure' script.
+dnl ACE_CONFIGURATION_OPTIONS
+AC_DEFUN([ACE_CONFIGURATION_OPTIONS],
+[
+ AM_CONDITIONAL([BUILD_ACE_FOR_TAO], false)
+
+ AC_ARG_ENABLE([ace-codecs],
+ AS_HELP_STRING(--enable-ace-codecs,build ACE with codecs support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_ace_codecs=yes
+ ;;
+ no)
+ ace_user_enable_ace_codecs=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-codecs])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_ace_codecs=yes
+ ])
+ AM_CONDITIONAL([BUILD_ACE_CODECS], [test X$ace_user_enable_ace_codecs = Xyes])
+
+ AC_ARG_ENABLE([ace-filecache],
+ AS_HELP_STRING(--enable-ace-filecache,build ACE_Filecache support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_ace_filecache=yes
+ ;;
+ no)
+ ace_user_enable_ace_filecache=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-filecache])
+ ;;
+ esac
+ ],
+ [
+ dnl Enable ACE_Filecache support by default since it's never turned off
+ dnl in the ACE lib itself. Just required for some things like JAWS.
+ ace_user_enable_ace_filecache=yes
+ ])
+ AM_CONDITIONAL([BUILD_ACE_FILECACHE], [test X$ace_user_enable_ace_filecache = Xyes])
+
+ AC_ARG_ENABLE([ace-other],
+ AS_HELP_STRING(--enable-ace-other,build ACE with all misc pieces [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_ace_other=yes
+ ;;
+ no)
+ ace_user_enable_ace_other=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-other])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_ace_other=yes
+ ])
+ AM_CONDITIONAL([BUILD_ACE_OTHER], [test X$ace_user_enable_ace_other = Xyes])
+
+ AC_ARG_ENABLE([ace-token],
+ AS_HELP_STRING(--enable-ace-token,build ACE with tokens support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_ace_token=yes
+ ;;
+ no)
+ ace_user_enable_ace_token=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-token])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_ace_token=yes
+ ])
+ AM_CONDITIONAL([BUILD_ACE_TOKEN], [test X$ace_user_enable_ace_token = Xyes])
+
+ AC_ARG_ENABLE([ace-uuid],
+ AS_HELP_STRING(--enable-ace-uuid,build ACE with UUID support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_ace_uuid=yes
+ ;;
+ no)
+ ace_user_enable_ace_uuid=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-uuid])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_ace_uuid=yes
+ ])
+ AM_CONDITIONAL([BUILD_ACE_UUID], [test X$ace_user_enable_ace_uuid = Xyes])
+
+ AC_ARG_ENABLE([alloca],
+ AS_HELP_STRING(--enable-alloca,compile with alloca() support [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_alloca=yes
+ ;;
+ no)
+ ace_user_enable_alloca=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-alloca])
+ ;;
+ esac
+ ],
+ [
+ dnl Disable alloca() support by default since its use is generally
+ dnl not recommended.
+ ace_user_enable_alloca=no
+ ])
+
+ AC_ARG_ENABLE([rwho],
+ AS_HELP_STRING(--enable-rwho,build the distributed rwho program [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_rwho=yes
+ ;;
+ no)
+ ace_user_enable_rwho=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-rwho])
+ ;;
+ esac
+ ],)
+ AM_CONDITIONAL([BUILD_RWHO], [test X$ace_user_enable_rwho = Xyes])
+
+ AC_ARG_ENABLE([ipv4-ipv6],
+ AS_HELP_STRING(--enable-ipv4-ipv6,compile with IPv4/IPv6 migration support [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_HAS_IPV6)
+ AC_DEFINE(ACE_USES_IPV4_IPV6_MIGRATION)
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ipv4-ipv6])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([ipv6],
+ AS_HELP_STRING(--enable-ipv6,compile with IPv6 support [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_HAS_IPV6)
+ ace_user_enable_ipv6=yes
+ ;;
+ no)
+ ace_user_enable_ipv6=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ipv6])
+ ;;
+ esac
+ ],)
+ AM_CONDITIONAL([BUILD_IPV6], [test X$ace_user_enable_ipv6 = Xyes])
+
+ AC_ARG_ENABLE([log-msg-prop],
+ AS_HELP_STRING(--enable-log-msg-prop,enable threads inheriting ACE_Log_Msg properties from parent thread [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE(ACE_THREADS_DONT_INHERIT_LOG_MSG)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-log-msg-prop])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([logging],
+ AS_HELP_STRING(--enable-logging,enable ACE logging macros [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE([ACE_NLOGGING])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-logging])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([malloc-stats],
+ AS_HELP_STRING(--enable-malloc-stats,enable malloc statistics collection [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_HAS_MALLOC_STATS])
+ ;;
+ no)
+ dnl nothing to do
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-malloc-stats])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([pi-pointers],
+ AS_HELP_STRING(--enable-pi-pointers,enable pos. indep. pointers [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_HAS_POSITION_INDEPENDENT_POINTERS])
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-pi-pointers])
+ ;;
+ esac
+ ],
+ [
+ AC_DEFINE([ACE_HAS_POSITION_INDEPENDENT_POINTERS])
+ ])
+
+ AC_ARG_ENABLE([posix-sem-timeout-emulation],
+ AS_HELP_STRING(--enable-posix-sem-timeout-emulation,enable POSIX semaphore timeout emulation [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION])
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-posix-sem-timeout-emulation])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([probe],
+ AS_HELP_STRING(--enable-probe,enable ACE_Timeprobes [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_COMPILE_TIMEPROBES])
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-probe])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([static-obj-mgr],
+ AS_HELP_STRING(--enable-static-obj-mgr,enable static Object_Manager [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE([ACE_HAS_NONSTATIC_OBJECT_MANAGER])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-static-obj-mgr])
+ ;;
+ esac
+ ],)
+
+
+ AC_ARG_ENABLE([threads],
+ AS_HELP_STRING(--enable-threads,enable thread support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_threads=yes
+ ;;
+ no)
+ ace_user_enable_threads=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-threads])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_threads=yes
+ ])
+ AM_CONDITIONAL([BUILD_THREADS], [test X$ace_user_enable_threads = Xyes])
+
+ AC_ARG_ENABLE([pthreads],
+ AS_HELP_STRING(--enable-pthreads,enable POSIX thread (Pthreads) support [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_pthreads=yes
+ ;;
+ no)
+ ace_user_enable_pthreads=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-pthreads])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_pthreads=yes
+ ])
+
+ AC_ARG_ENABLE([uithreads],
+ AS_HELP_STRING(--enable-uithreads,enable UNIX International thread support [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_uithreads=yes
+ ;;
+ no)
+ ace_user_enable_uithreads=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-uithreads])
+ ;;
+ esac
+ ],
+ [
+ dnl The default is to disable UI threads. However, on Solaris, we
+ dnl enable it by default since it's functionality is very useful and
+ dnl has traditionally been enabled in ACE.
+ case "$host" in
+ *solaris2*)
+ ace_user_enable_uithreads=yes
+ AC_MSG_NOTICE([[--enable-uithreads enabled by default for Solaris; use --enable-uithreads=no to disable it.]])
+ ;;
+ *)
+ ace_user_enable_uithreads=no
+ ;;
+ esac
+ ])
+
+ AC_ARG_ENABLE([verb-not-sup],
+ AS_HELP_STRING(--enable-verb-not-sup,enable verbose ENOTSUP reports [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_HAS_VERBOSE_NOTSUP])
+ ;;
+ no)
+ dnl Do nothing
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-verb-not-sup])
+ ;;
+ esac
+ ],)
+
+ dnl The ace/config-all.h file defaults ACE_NTRACE properly, so only emit
+ dnl something if the user specifies this option.
+ AC_ARG_ENABLE([trace],
+ AS_HELP_STRING(--enable-trace,enable ACE tracing [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_NTRACE],0)
+ ;;
+ no)
+ AC_DEFINE([ACE_NTRACE],1)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-trace])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([wfmo],
+ AS_HELP_STRING(--enable-wfmo,build WFMO-using examples [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_wfmo=yes
+ ;;
+ no)
+ ace_user_enable_wfmo=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-wfmo])
+ ;;
+ esac
+ ],
+ [
+ case "$host" in
+ *win32*)
+ ace_user_enable_wfmo=yes
+ ;;
+ *)
+ ace_user_enable_wfmo=no
+ ;;
+ esac
+ ])
+ AM_CONDITIONAL([BUILD_WFMO], [test X$ace_user_enable_wfmo = Xyes])
+
+ AC_ARG_ENABLE([wince],
+ AS_HELP_STRING(--enable-wince,build Windows CE/Mobile-using examples [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_wince=no
+ ;;
+ no)
+ ace_user_enable_wince=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-wince])
+ ;;
+ esac
+ ],
+ [
+ case "$host" in
+ *win32*)
+ ace_user_enable_wince=yes
+ ;;
+ *)
+ ace_user_enable_wince=no
+ ;;
+ esac
+ ])
+ AM_CONDITIONAL([BUILD_WINCE], [test X$ace_user_enable_wince = Xyes])
+
+ AC_ARG_ENABLE([winregistry],
+ AS_HELP_STRING(--enable-winregistry,build Windows registry-using examples [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_winregistry=no
+ ;;
+ no)
+ ace_user_enable_winregistry=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-winregistry])
+ ;;
+ esac
+ ],
+ [
+ case "$host" in
+ *win32*)
+ ace_user_enable_winregistry=yes
+ ;;
+ *)
+ ace_user_enable_winregistry=no
+ ;;
+ esac
+ ])
+ AM_CONDITIONAL([BUILD_WINREGISTRY], [test X$ace_user_enable_winregistry = Xyes])
+
+ ACE_ENABLE_FL_REACTOR
+ ACE_ENABLE_QT_REACTOR
+ ACE_ENABLE_TK_REACTOR
+ ACE_ENABLE_XT_REACTOR
+
+ # placeholder for WxWindows/wxWidgets support
+ AM_CONDITIONAL([BUILD_WXWINDOWS], false)
+
+ ACE_PATH_ZLIB
+ ACE_PATH_ZZIP
+
+ AC_ARG_ENABLE([gperf],
+ AS_HELP_STRING(--enable-gperf,compile the gperf program [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_gperf=yes
+ ;;
+ no)
+ ace_user_enable_gperf=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${withval} for --with-gperf])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_gperf=yes
+ ])
+ if test "$ace_user_enable_gperf" = yes; then
+ AC_DEFINE([ACE_HAS_GPERF])
+ AS_IF([test -n "$GPERF"],
+ [
+ AC_MSG_WARN([gperf program already exists])
+ AC_MSG_WARN([existing gperf may be overwritten during installation])
+ ],[])
+ fi
+ AM_CONDITIONAL([COMPILE_GPERF], [test X$ace_user_enable_gperf = Xyes])
+
+ ACE_ENABLE_QOS
+ ACE_ENABLE_SSL
+ ACE_ENABLE_ACEXML
+
+ AC_ARG_WITH([tao],
+ AS_HELP_STRING(--with-tao,build TAO (the ACE ORB) [[[yes]]]),
+ [
+ case "${withval}" in
+ yes)
+ ace_user_with_tao=yes
+ ;;
+ no)
+ ace_user_with_tao=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${withval} for --with-tao])
+ ;;
+ esac
+ ],
+ [
+ ace_user_with_tao=yes
+ ])
+
+ AC_ARG_WITH([tli-device],
+ AS_HELP_STRING(--with-tli-device(=DEV),device for TCP on TLI [[/dev/tcp]]),
+ [
+ case "${withval}" in
+ yes)
+ AC_MSG_ERROR([Specify the TLI/TCP device if you use this option.])
+ ;;
+ no)
+ ;;
+ *)
+ if test -e "${withval}"; then
+ AC_DEFINE_UNQUOTED([ACE_TLI_TCP_DEVICE], ["${withval}"])
+ else
+ AC_MSG_ERROR([TLI/TCP device ${withval} does not exist.])
+ fi
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([reentrant],
+ AS_HELP_STRING(--enable-reentrant,enable reentrant functions [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_reentrant_funcs=yes
+ ;;
+ no)
+ ace_user_enable_reentrant_funcs=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-reentrant])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_reentrant_funcs=yes
+ ])
+
+ AC_ARG_ENABLE([ace-examples],
+ AS_HELP_STRING(--enable-ace-examples,build ACE examples [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_build_examples=yes
+ ;;
+ no)
+ ace_build_examples=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-examples])
+ ;;
+ esac
+ ],
+ [
+ ace_build_examples=yes
+ ])
+ AM_CONDITIONAL([BUILD_EXAMPLES], [test X$ace_build_examples = Xyes])
+
+ AC_ARG_ENABLE([ace-tests],
+ AS_HELP_STRING(--enable-ace-tests,build ACE tests [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_build_tests=yes
+ ;;
+ no)
+ ace_build_tests=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-ace-tests])
+ ;;
+ esac
+ ],
+ [
+ ace_build_tests=yes
+ ])
+ AM_CONDITIONAL([BUILD_TESTS], [test X$ace_build_tests = Xyes])
+
+ ACE_ENABLE_CDR_SWAP_ON_READ
+ ACE_ENABLE_CDR_SWAP_ON_WRITE
+ ACE_ENABLE_CDR_ALIGNMENT
+ ACE_ENABLE_REACTOR_NOTIFICATION_QUEUE
+ ACE_ENABLE_STRDUP_EMULATION
+ ACE_ENABLE_WCSDUP_EMULATION
+])
+
+
+dnl Macros that add ACE compilation options to a `configure' script.
+dnl ACE_COMPILATION_OPTIONS
+AC_DEFUN([ACE_COMPILATION_OPTIONS],
+[
+ AC_ARG_ENABLE([debug],
+ AS_HELP_STRING(--enable-debug,enable debugging [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS $DCXXFLAGS"
+ ;;
+ no)
+ AC_DEFINE([ACE_NDEBUG])
+ AC_DEFINE([ACE_USE_RCSID],[0])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-debug])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([exceptions],
+ AS_HELP_STRING(--enable-exceptions,enable C++ exception handling [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_exceptions=yes
+ ;;
+ no)
+ ace_user_enable_exceptions=no
+ if test "$GXX" = yes; then
+ if $CXX --version | $EGREP -v '^2\.[[0-7]]' > /dev/null; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-exceptions"
+ fi
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-exceptions])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_exceptions=yes
+
+dnl THE FOLLOWING WAS ONLY USED WHEN DISABLING EXCEPTION SUPPORT BY
+dnl DEFAULT.
+dnl
+dnl if test "$GXX" = yes; then
+dnl if $CXX --version | $EGREP -v '^2\.[[0-7]]' > /dev/null; then
+dnl ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-exceptions"
+dnl fi
+dnl fi
+ ])
+ AM_CONDITIONAL([BUILD_EXCEPTIONS], [test X$ace_user_enable_exceptions = Xyes])
+
+ AC_ARG_ENABLE([fast],
+ AS_HELP_STRING(--enable-fast,enable -fast flag (e.g. Sun C++) [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fast"
+ ACE_CFLAGS="$ACE_CFLAGS -fast"
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-fast])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([inline],
+ AS_HELP_STRING(--enable-inline,enable code inlining [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE([__ACE_INLINE__])
+ ;;
+ no)
+ AC_DEFINE([ACE_NO_INLINE])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-inline])
+ ;;
+ esac
+ ],
+ [
+ AC_DEFINE([__ACE_INLINE__])
+ ])
+
+ AC_ARG_ENABLE([optimize],
+ AS_HELP_STRING(--enable-optimize,enable additional optimizations [[[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_optimize=yes
+ ;;
+ no)
+ AC_MSG_WARN([Optimization configure support not fully implemented yet.])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-optimize])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_optimize=yes
+ ])
+
+
+ AC_ARG_ENABLE([profile],
+ AS_HELP_STRING(--enable-profile,enable profiling [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ if test -z "$PROF"; then
+ AC_MSG_WARN([No profiling program found. Assuming 'prof' exists.])
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ else
+ case "$PROF" in
+ gprof)
+ echo "Building with 'gprof' support"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -pg"
+ ACE_CFLAGS="$ACE_CFLAGS -pg"
+ ;;
+ prof)
+ echo "Building with 'prof' support"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ ;;
+ *)
+ dnl We shouldn't get here.
+ AC_MSG_WARN([Assuming 'prof' exists.])
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ ;;
+ esac
+ fi
+ ;;
+ no)
+ dnl Do nothing
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-profile])
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE([purify],
+ AS_HELP_STRING(--enable-purify,Purify all executables [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_CHECK_PROG([PURIFY], [purify], [purify],[])
+ if test -n "$PURIFY"; then
+ PURE_CACHE_BASE_DIR=/tmp/purifycache
+ PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
+ PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
+ PURELINK="$PURIFY -best-effort -chain-length=20 -cache-dir=$PURE_CACHE_DIR -fds-inuse-at-exit=no -inuse-at-exit -max_threads=100"
+ dnl Pick up Quantify directory from the users PATH.
+ ACE_PURIFY_DIR=`type purify | sed -e 's/.* is //' -e 's%/purify'`
+ ACE_CPPFLAGS="-DACE_HAS_PURIFY -I$ACE_PURIFY_DIR"
+ else
+ AC_MSG_WARN([Purify program was not found.])
+ AC_MSG_WARN([Disabling purify support.])
+ fi
+ ;;
+ no)
+ PURELINK=""
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-purify])
+ ;;
+ esac
+ ], PURELINK="")
+
+ AC_ARG_ENABLE([quantify],
+ AS_HELP_STRING(--enable-quantify,Quantify all executables [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ AC_CHECK_PROG([QUANTIFY], [quantify], [quantify],[])
+ if test -n "$QUANTIFY"; then
+ PURE_CACHE_BASE_DIR=/tmp/purifycache
+ PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
+ PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
+
+ PRELINK="$QUANTIFY -best-effort -max_threads=100 -cache-dir=$PURE_CACHE_DIR"
+ dnl Pick up Quantify directory from the users PATH.
+ ACE_QUANTIFY_DIR=`type quantify | sed -e 's/.* is //' -e 's%/quantify$$%%'`
+ ACE_CPPFLAGS="-DACE_HAS_QUANTIFY -I$ACE_QUANTIFY_DIR"
+ else
+ AC_MSG_WARN([Quantify program was not found.])
+ AC_MSG_WARN([Disabling quantify support.])
+ fi
+ ;;
+ no)
+ PRELINK=""
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-quantify])
+ ;;
+ esac
+ ], PRELINK="")
+
+ AC_ARG_ENABLE([repo],
+ AS_HELP_STRING(--enable-repo,use GNU template repository GNU C++ with repo patches and EGCS only [[[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ if test "$GXX" = yes; then
+ ace_user_enable_repo=yes
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -frepo"
+ AC_DEFINE(ACE_HAS_GNU_REPO)
+ else
+ ace_user_enable_repo=no
+ AC_MSG_WARN([Not using GNU C++! GNU template respository disabled.])
+ fi
+ ;;
+ no)
+ ace_user_enable_repo=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-repo])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_repo=no
+ ])
+
+ AC_ARG_ENABLE([stdcpplib],
+ AS_HELP_STRING([--enable-stdcpplib],[enable standard C++ library [[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_stdcpplib=yes
+ ;;
+ no)
+ ace_user_enable_stdcpplib=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-stdcpplib])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_stdcpplib=yes
+ ])
+
+ AC_ARG_ENABLE([uses-wchar],
+ AS_HELP_STRING([--enable-uses-wchar],
+ [enable use of wide characters [[no]]]),
+ [case "${enableval}" in
+ yes)
+ AC_DEFINE([ACE_USES_WCHAR])
+ ace_user_enable_wide_char=yes
+ ;;
+ no)
+ ace_user_enable_wide_char=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-uses-wchar])
+ ;;
+ esac])
+ AC_CACHE_CHECK([whether to use wide characters internally],
+ [ace_user_enable_wide_char], [ace_user_enable_wide_char=no])
+ AM_CONDITIONAL([BUILD_USES_WCHAR], [test X$ace_user_enable_wide_char = Xyes])
+
+])
+
+# ACE_ENABLE_CDR_SWAP_ON_READ
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_CDR_SWAP_ON_READ],
+[AC_ARG_ENABLE([ace-cdr-swap-on-read],
+ AS_HELP_STRING([--enable-ace-cdr-swap-on-read],
+ [configure CDR to support swap on read [[yes]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_cdr_swap_on_read=yes
+ ;;
+ no)
+ ace_user_cdr_swap_on_read=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-cdr-swap-on-read)
+ ;;
+ esac],[
+ ace_user_cdr_swap_on_read=yes
+ ])
+if test X$ace_user_cdr_swap_on_read = Xno; then
+ AC_DEFINE(ACE_DISABLE_SWAP_ON_READ, 1,
+ [Define to 1 to disable swapping swapping CDR on read])
+fi
+])
+
+# ACE_ENABLE_CDR_SWAP_ON_WRITE
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_CDR_SWAP_ON_WRITE],
+[AC_ARG_ENABLE([ace-cdr-swap-on-write],
+ AS_HELP_STRING([--enable-ace-cdr-swap-on-write],
+ [configure CDR to support swap on write [[no]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_cdr_swap_on_write=yes
+ ;;
+ no)
+ ace_user_cdr_swap_on_write=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-cdr-swap-on-write)
+ ;;
+ esac],[
+ ace_user_cdr_swap_on_write=no
+ ])
+if test X$ace_user_cdr_swap_on_write = Xyes; then
+ AC_DEFINE(ACE_ENABLE_SWAP_ON_WRITE, 1,
+ [Define to 1 to enable swapping swapping CDR on write])
+fi
+])
+
+# ACE_ENABLE_CDR_ALIGNMENT
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_CDR_ALIGNMENT],
+[AC_ARG_ENABLE([ace-cdr-alignment],
+ AS_HELP_STRING([--enable-ace-cdr-alignment],
+ [configure CDR to require aligned access [[yes]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_cdr_alignment=yes
+ ;;
+ no)
+ ace_user_cdr_alignment=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-cdr-alignment)
+ ;;
+ esac],[
+ ace_user_cdr_alignment=yes
+ ])
+if test X$ace_user_cdr_alignment = Xno; then
+ AC_DEFINE(ACE_LACKS_CDR_ALIGNMENT, 1,
+ [Define to 1 to support unaligned CDR])
+fi
+])
+
+# ACE_ENABLE_REACTOR_NOTIFICATION_QUEUE
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_REACTOR_NOTIFICATION_QUEUE],
+[AC_ARG_ENABLE([ace-reactor-notification-queue],
+ AS_HELP_STRING([--enable-ace-reactor-notification-queue],
+ [configure Reactor to use a user-space queue for notifications [[no]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_reactor_notification_queue=yes
+ ;;
+ no)
+ ace_user_reactor_notification_queue=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-reactor-notification-queue)
+ ;;
+ esac],[
+ ace_user_reactor_notification_queue=no
+ ])
+if test X$ace_user_reactor_notification_queue = Xyes; then
+ AC_DEFINE([ACE_HAS_REACTOR_NOTIFICATION_QUEUE], 1,
+ [Define to 1 to configure Reactor to use a user-space queue for notifications])
+fi
+])
+
+
+# ACE_ENABLE_STRDUP_EMULATION
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_STRDUP_EMULATION],
+[AC_ARG_ENABLE([ace-strdup-emulation],
+ AS_HELP_STRING([--enable-ace-strdup-emulation],
+ [use ACE's strdup emulation [[no]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_strdup_emulation=yes
+ ;;
+ no)
+ ace_user_strdup_emulation=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-strdup-emulation)
+ ;;
+ esac],[
+ ace_user_strdup_emulation=no
+ ])
+if test X$ace_user_strdup_emulation = Xyes; then
+ AC_DEFINE(ACE_HAS_STRDUP_EMULATION, 1,
+ [Define to 1 use ACE's strdup() emulation])
+fi
+])
+
+# ACE_ENABLE_WCSDUP_EMULATION
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_WCSDUP_EMULATION],
+[AC_ARG_ENABLE([ace-wcsdup-emulation],
+ AS_HELP_STRING([--enable-ace-wcsdup-emulation],
+ [use ACE's wcsdup emulation [[no]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_wcsdup_emulation=yes
+ ;;
+ no)
+ ace_user_wcsdup_emulation=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ace-wcsdup-emulation)
+ ;;
+ esac],[
+ ace_user_wcsdup_emulation=no
+ ])
+if test X$ace_user_wcsdup_emulation = Xyes; then
+ AC_DEFINE(ACE_HAS_WCSDUP_EMULATION, 1,
+ [Define to 1 use ACE's wcsdup() emulation])
+fi
+])
+
+AC_DEFUN([ACE_ENABLE_QOS],
+[AC_ARG_ENABLE([qos],
+ AS_HELP_STRING([--enable-qos],
+ [compile/use the ACE_QoS library [[no]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_enable_qos=yes
+ ;;
+ no)
+ ace_user_enable_qos=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-qos)
+ ;;
+ esac])
+AC_CACHE_CHECK([whether to compile/use the ACE_QoS library],
+ [ace_user_enable_qos],[ace_user_enable_qos=no])
+AM_CONDITIONAL([BUILD_QOS], [test X$ace_user_enable_qos = Xyes])
+])
+
+AC_DEFUN([ACE_ENABLE_SSL],
+[AC_REQUIRE([ACE_CHECK_TLS])
+AC_ARG_ENABLE([ssl],
+ AS_HELP_STRING([--enable-ssl],
+ [compile/use the ACE_SSL library [[yes]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_enable_ssl=yes
+ ;;
+ no)
+ ace_user_enable_ssl=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-ssl)
+ ;;
+ esac])
+AC_CACHE_CHECK([whether to compile/use the ACE_SSL library],
+ [ace_user_enable_ssl], [ace_user_enable_ssl=yes])
+AM_CONDITIONAL([BUILD_SSL], [test X$ace_user_enable_ssl = Xyes])
+])
+
+AC_DEFUN([ACE_ENABLE_ACEXML],
+[AC_ARG_ENABLE([acexml],
+ AS_HELP_STRING([--enable-acexml],
+ [compile/use the ACEXML library [[yes]]]),
+ [case "${enableval}" in
+ yes)
+ ace_user_enable_acexml=yes
+ ;;
+ no)
+ ace_user_enable_acexml=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-acexml)
+ ;;
+ esac],
+ [
+ ace_user_enable_acexml=yes
+ ])
+AC_CACHE_CHECK([whether to compile/use the ACEXML library],
+ [ace_user_enable_acexml], [ace_user_enable_acexml=yes])
+AM_CONDITIONAL([BUILD_ACEXML], [test X$ace_user_enable_acexml = Xyes])
+])
+
+
+# ACE_PATH_GL
+#---------------------------------------------------------------------------
+# Find OpenGL Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_GL],
+[
+])
+
+
+# ACE_PATH_FL
+#---------------------------------------------------------------------------
+# Find FL/TK Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_FL],
+[AC_REQUIRE([ACE_PATH_GL])
+ AC_ARG_WITH([fltkconfig],
+ AS_HELP_STRING([--with-fltkconfig=DIR],
+ [path to fltk-config [[automatic]]]),
+ [ ac_fltkconfig_dir="${withval}" ])
+ if test X"${ac_fltkconfig_dir}" = X; then
+ AC_PATH_PROG([FLTKCONFIG], [fltk-config], [])
+ else
+ AC_MSG_CHECKING([whether fltk-config exists in ${ac_fltkconfig_dir}])
+ if test -f "${ac_fltkconfig_dir}/fltk-config"; then
+ FLTKCONFIG="${ac_fltkconfig_dir}/fltk-config"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ if test X"${FLTKCONFIG}" != X; then
+ ACE_FLTK_CPPFLAGS=`$FLTKCONFIG --use-gl --cxxflags 2>/dev/null`
+ ACE_FLTK_LIBS=`$FLTKCONFIG --use-gl --ldflags 2>/dev/null`
+
+ AC_SUBST(ACE_FLTK_CPPFLAGS)
+ AC_SUBST(ACE_FLTK_LIBS)
+ fi
+])
+
+
+# ACE_PATH_QT
+#---------------------------------------------------------------------------
+# Find Qt Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_QT],
+[
+ ac_qt_found=no
+ PKG_CHECK_MODULES([Qt], [qt-mt],
+ [ac_qt_found=yes],
+ [AC_MSG_RESULT([not found])])
+ if test X"${ac_qt_found}" = Xyes; then
+ ACE_QT_CPPFLAGS="${Qt_CFLAGS}"
+ ACE_QT_LIBS="${Qt_LIBS}"
+ AC_SUBST(ACE_QT_CPPFLAGS)
+ AC_SUBST(ACE_QT_LIBS)
+
+ AS_IF([test -n "$QTDIR"],
+ [],
+ [QTDIR=`$PKG_CONFIG --variable=prefix qt-mt 2>/dev/null`])
+ AC_SUBST(QTDIR)
+ fi
+])
+
+
+# ACE_PATH_TCL
+#---------------------------------------------------------------------------
+# Find Tcl Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_TCL],
+[AC_ARG_WITH([tclconfig],
+ AS_HELP_STRING([--with-tclconfig=DIR],
+ [path to tclConfig.sh [[automatic]]]),
+ [ ac_tclconfig_dir="${withval}" ])
+ if test X"${ac_tclconfig_dir}" = X; then
+ AC_PATH_PROG([TCLCONFIG], [tclConfig.sh], [],
+ [${PATH}:/usr/local/lib:/usr/pkg/lib:/usr/lib/tcl8.4:/usr/lib/tcl8.3:/usr/lib])
+ else
+ AC_MSG_CHECKING([whether tclConfig.sh exists in ${ac_tclconfig_dir}])
+ if test -f "${ac_tclconfig_dir}/tclConfig.sh"; then
+ TCLCONFIG="${ac_tclconfig_dir}/tclConfig.sh"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ if test X"${TCLCONFIG}" != X; then
+ . ${TCLCONFIG}
+
+ ACE_TCL_CPPFLAGS="${TCL_INCLUDE_SPEC}"
+ eval "ACE_TCL_LIBS=\"${TCL_LIB_SPEC}\""
+
+ AC_SUBST(ACE_TCL_CPPFLAGS)
+ AC_SUBST(ACE_TCL_LIBS)
+ fi
+])
+
+
+# ACE_PATH_TK
+#---------------------------------------------------------------------------
+# Find Tk Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_TK],
+[AC_REQUIRE([ACE_PATH_TCL])
+ AC_ARG_WITH([tkconfig],
+ AS_HELP_STRING([--with-tkconfig=DIR],
+ [path to tkConfig.sh [[automatic]]]),
+ [ ac_tkconfig_dir="${withval}" ])
+ if test X"${ac_tkconfig_dir}" = X; then
+ AC_PATH_PROG([TKCONFIG], [tkConfig.sh], [],
+ [${PATH}:/usr/local/lib:/usr/pkg/lib:/usr/lib/tk8.4:/usr/lib/tk8.3:/usr/lib])
+ else
+ AC_MSG_CHECKING([whether tkConfig.sh exists in ${ac_tkconfig_dir}])
+ if test -f "${ac_tkconfig_dir}/tkConfig.sh"; then
+ TKCONFIG="${ac_tkconfig_dir}/tkConfig.sh"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ fi
+ if test X"${TKCONFIG}" != X; then
+ . ${TKCONFIG}
+
+ ACE_TK_CPPFLAGS="${TK_INCLUDE_SPEC} ${TK_XINCLUDES}"
+ ACE_TK_LIBS="${TK_LIB_SPEC} ${TK_XLIBSW}"
+
+ AC_SUBST(ACE_TK_CPPFLAGS)
+ AC_SUBST(ACE_TK_LIBS)
+ fi
+])
+
+
+# ACE_PATH_XT
+#---------------------------------------------------------------------------
+# Find Xt libraries, flags, etc.
+AC_DEFUN([ACE_PATH_XT],
+[AC_REQUIRE([ACE_PATH_X11])
+
+if test "$no_x" != yes; then
+ ACE_XT_CPPFLAGS=""
+ ACE_XT_LDFLAGS=""
+ ACE_XT_LIBS="-lXt"
+
+ AC_SUBST(ACE_XT_CPPFLAGS)
+ AC_SUBST(ACE_XT_LDFLAGS)
+ AC_SUBST(ACE_XT_LIBS)
+fi
+AM_CONDITIONAL([BUILD_ATHENA], true)
+AM_CONDITIONAL([BUILD_MOTIF], false)
+])
+
+
+# ACE_PATH_X11
+#---------------------------------------------------------------------------
+# Find X11 libraries, flags, etc.
+AC_DEFUN([ACE_PATH_X11],
+[AC_REQUIRE([AC_PATH_XTRA])
+
+if test "$no_x" != yes; then
+ ACE_X11_CPPFLAGS="${X_CFLAGS}"
+ ACE_X11_LDFLAGS="${X_LIBS}"
+ ACE_X11_LIBS="${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS}"
+
+ AC_SUBST(ACE_X11_CPPFLAGS)
+ AC_SUBST(ACE_X11_LDFLAGS)
+ AC_SUBST(ACE_X11_LIBS)
+fi
+
+AM_CONDITIONAL([BUILD_X11], [test X$no_x != Xyes])
+])
+
+
+# ACE_PATH_ZLIB
+#---------------------------------------------------------------------------
+# Find zlib Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_ZLIB],
+[
+ACE_ZLIB_CPPFLAGS=""
+ACE_ZLIB_LDFLAGS=""
+
+dnl TODO: default to false, at least until we add a check to see if
+dnl the zlib library is usable.
+AC_ARG_WITH([zlib],
+ AS_HELP_STRING([--with-zlib@<:@=DIR@:>@],
+ [root directory of zlib installation]),
+ [
+ ace_with_zlib="${withval}"
+ if test "${ace_with_zlib}" != yes; then
+ ace_zlib_include="${ace_with_zlib}/include"
+ ace_zlib_libdir="${ace_with_zlib}/lib"
+ fi
+ ],[ace_with_zlib=no])
+
+dnl TODO: let's wait and see before adding options to specify header
+dnl and library location separately.
+dnl
+dnl AC_ARG_WITH([zlib_include],
+dnl AS_HELP_STRING([--with-zlib-include=DIR],
+dnl [specify exact include dir for zlib headers]),
+dnl [ace_zlib_include="$withval"])
+dnl
+dnl AC_ARG_WITH([zlib_libdir],
+dnl AS_HELP_STRING([--with-zlib-libdir=DIR],
+dnl [specify exact include dir for zlib libraries]),
+dnl [ace_zlib_libdir="$withval"])
+
+if test "${ace_zlib_include}"; then
+ ACE_ZLIB_CPPFLAGS="-I$ace_zlib_include"
+fi
+
+if test "${ace_zlib_libdir}"; then
+ ACE_ZLIB_LDFLAGS="-L$ace_zlib_libdir"
+fi
+
+ACE_ZLIB_CPPFLAGS="${ACE_ZLIB_CPPFLAGS} -DZLIB"
+
+if test "${ace_with_zlib}" != no; then
+ ACE_ZLIB_LIBS="-lz"
+ AC_SUBST(ACE_ZLIB_CPPFLAGS)
+ AC_SUBST(ACE_ZLIB_LDFLAGS)
+ AC_SUBST(ACE_ZLIB_LIBS)
+fi
+AM_CONDITIONAL([BUILD_ZLIB], test "${ace_with_zlib}" != no)
+])
+
+
+# ACE_PATH_ZZIP
+#---------------------------------------------------------------------------
+# Find zziplib Libraries, flags, etc.
+AC_DEFUN([ACE_PATH_ZZIP],
+[AC_REQUIRE([ACE_PATH_ZLIB])
+
+ACE_ZZIP_CPPFLAGS=""
+ACE_ZZIP_LDFLAGS=""
+
+dnl TODO: default to false, at least until we add a check to see if
+dnl the zlib library is usable.
+AC_ARG_WITH([zzip],
+ AS_HELP_STRING([--with-zzip@<:@=DIR@:>@],
+ [root directory of zzip installation]),
+ [
+ ace_with_zzip="${withval}"
+ if test "${ace_with_zzip}" != yes; then
+ ace_zzip_include="${ace_with_zzip}/include"
+ ace_zzip_libdir="${ace_with_zzip}/lib"
+ fi
+ ],[ace_with_zzip=no])
+
+dnl TODO: let's wait and see before adding options to specify header
+dnl and library location separately.
+dnl
+dnl AC_ARG_WITH([zzip_include],
+dnl AS_HELP_STRING([--with-zzip-include=DIR],
+dnl [specify exact include dir for zzip headers]),
+dnl [ace_zzip_include="$withval"])
+dnl
+dnl AC_ARG_WITH([zzip_libdir],
+dnl AS_HELP_STRING([--with-zzip-libdir=DIR],
+dnl [specify exact include dir for zzip libraries]),
+dnl [ace_zzip_libdir="$withval"])
+
+if test "${ace_zzip_include}"; then
+ ACE_ZZIP_CPPFLAGS="-I$ace_zzip_include"
+fi
+
+if test "${ace_zzip_libdir}"; then
+ ACE_ZZIP_LDFLAGS="-L$ace_zzip_libdir"
+fi
+
+ACE_ZZIP_CPPFLAGS="${ACE_ZZIP_CPPFLAGS} -DUSE_ZZIP"
+
+if test "${ace_with_zzip}" != no; then
+ ACE_ZZIP_LIBS="-lzzip"
+ AC_SUBST(ACE_ZZIP_CPPFLAGS)
+ AC_SUBST(ACE_ZZIP_LDFLAGS)
+ AC_SUBST(ACE_ZZIP_LIBS)
+fi
+AM_CONDITIONAL([BUILD_ZZIP], test "${ace_with_zzip}" != no)
+])
+
+
+# ACE_ENABLE_FL_REACTOR
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_FL_REACTOR],
+[AC_REQUIRE([ACE_PATH_FL])
+AC_REQUIRE([ACE_PATH_X11])
+AC_ARG_ENABLE([fl-reactor],
+ AS_HELP_STRING([--enable-fl-reactor],
+ [build support for the FlReactor [[no]]]),
+ [case "${enableval}" in
+ yes)
+ AS_IF([test X"${FLTKCONFIG}" != X],
+ [ace_user_enable_fl_reactor=yes],
+ [AC_MSG_ERROR([ACE_FlReactor cannot be enabled: fltk-config not found.])])
+ ;;
+ no)
+ ace_user_enable_fl_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-fl-reactor])
+ ;;
+ esac],
+ [
+ ace_user_enable_fl_reactor=no
+ ])
+AM_CONDITIONAL([BUILD_GL], [test X$ace_user_enable_fl_reactor = Xyes])
+AM_CONDITIONAL([BUILD_FL], [test X$ace_user_enable_fl_reactor = Xyes])
+AM_CONDITIONAL([BUILD_ACE_FLREACTOR],
+ [test X$ace_user_enable_fl_reactor = Xyes])
+AM_CONDITIONAL([BUILD_TAO_FLRESOURCE],
+ [test X$ace_user_enable_fl_reactor = Xyes])
+])
+
+
+# ACE_ENABLE_QT_REACTOR
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_QT_REACTOR],
+[AC_REQUIRE([ACE_PATH_QT])
+AC_ARG_ENABLE([qt-reactor],
+ AS_HELP_STRING([--enable-qt-reactor],
+ [build support for the QtReactor [[no]]]),
+ [case "${enableval}" in
+ yes)
+ AS_IF([test X"${ac_qt_found}" = Xyes],
+ [ace_user_enable_qt_reactor=yes],
+ [AC_MSG_ERROR([ACE_QtReactor cannot be enabled: Qt not found.])])
+ ;;
+ no)
+ ace_user_enable_qt_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-qt-reactor])
+ ;;
+ esac],
+ [
+ ace_user_enable_qt_reactor=no
+ ])
+AM_CONDITIONAL([BUILD_QT], [test X$ace_user_enable_qt_reactor = Xyes])
+AM_CONDITIONAL([BUILD_ACE_QTREACTOR],
+ [test X$ace_user_enable_qt_reactor = Xyes])
+AM_CONDITIONAL([BUILD_TAO_QTRESOURCE],
+ [test X$ace_user_enable_qt_reactor = Xyes])
+])
+
+
+# ACE_ENABLE_TK_REACTOR
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_TK_REACTOR],
+[AC_REQUIRE([ACE_PATH_TK])
+AC_ARG_ENABLE([tk-reactor],
+ AS_HELP_STRING([--enable-tk-reactor],
+ [build support for the TkReactor [[no]]]),
+ [case "${enableval}" in
+ yes)
+ AS_IF([test X"${TCLCONFIG}" != X],
+ [AS_IF([test X"${TKCONFIG}" != X],
+ [ace_user_enable_tk_reactor=yes],
+ [AC_MSG_ERROR([ACE_TkReactor cannot be enabled: tkConfig not found.])])],
+ [AC_MSG_ERROR([ACE_TkReactor cannot be enabled: tclConfig not found.])])
+ ;;
+ no)
+ ace_user_enable_tk_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-tk-reactor])
+ ;;
+ esac],
+ [
+ ace_user_enable_tk_reactor=no
+ ])
+AM_CONDITIONAL([BUILD_TK], [test X$ace_user_enable_tk_reactor = Xyes])
+AM_CONDITIONAL([BUILD_ACE_TKREACTOR],
+ [test X$ace_user_enable_tk_reactor = Xyes])
+AM_CONDITIONAL([BUILD_TAO_TKRESOURCE],
+ [test X$ace_user_enable_tk_reactor = Xyes])
+])
+
+
+# ACE_ENABLE_XT_REACTOR
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_ENABLE_XT_REACTOR],
+[AC_REQUIRE([ACE_PATH_XT])
+AC_ARG_ENABLE([xt-reactor],
+ AS_HELP_STRING([--enable-xt-reactor],
+ [build support for the XtReactor [[no]]]),
+ [case "${enableval}" in
+ yes)
+dnl Here, if X isn't found or the user sets "--without-x" on the command
+dnl line, then "no_x" is set to "yes."
+ AS_IF([test "$no_x" != yes],
+ [
+ ace_user_enable_xt_reactor=yes
+ ],[
+ ace_user_enable_xt_reactor=no
+ AC_MSG_WARN([X was not found or it was disabled.])
+ AC_MSG_WARN([ACE_XtReactor will not be enabled.])
+ ])
+ ;;
+ no)
+ ace_user_enable_xt_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-xt-reactor])
+ ;;
+ esac],
+ [
+ ace_user_enable_xt_reactor=no
+ ])
+AM_CONDITIONAL([BUILD_XT], [test X$ace_user_enable_xt_reactor = Xyes])
+AM_CONDITIONAL([BUILD_ACE_XTREACTOR],
+ [test X$ace_user_enable_xt_reactor = Xyes])
+AM_CONDITIONAL([BUILD_TAO_XTRESOURCE],
+ [test X$ace_user_enable_xt_reactor = Xyes])
+])
+
+
diff --git a/ACE/m4/ace_defines.m4 b/ACE/m4/ace_defines.m4
new file mode 100644
index 00000000000..bb5ba514afc
--- /dev/null
+++ b/ACE/m4/ace_defines.m4
@@ -0,0 +1,48 @@
+# ACE_CHECK_DEFINE(DEFINE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_DEFINE],[
+AS_VAR_PUSHDEF([ac_var],[ace_cv_defined_$1])dnl
+AC_CACHE_CHECK([for $1], ac_var,
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([AC_INCLUDES_DEFAULT([$4])
+#ifdef $1
+int ok;
+#else
+choke me
+#endif
+])],AS_VAR_SET(ac_var, yes),AS_VAR_SET(ac_var, no)))
+AS_IF([test AS_VAR_GET(ac_var) != "no"], [$2], [$3])dnl
+AS_VAR_POPDEF([ac_var])dnl
+])
+
+# ACE_CHECK_HAS_DEFINES(DEFINE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_DEFINES],
+[AC_FOREACH([ACE_Def], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_HAS_[]ACE_Def),
+ [Define to 1 if platform has ]ACE_Def[().])])dnl
+for ace_def in $1
+do
+ACE_CHECK_DEFINE($ace_def,
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_HAS_$ace_def])]) $2],
+ [$3],
+ [$4])dnl
+done
+])
+
+# ACE_CHECK_LACKS_DEFINES(DEFINE..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_LACKS_DEFINES],
+[AC_FOREACH([ACE_Def], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_LACKS_[]ACE_Def),
+ [Define to 1 if platform lacks ]ACE_Def[().])])dnl
+for ace_def in $1
+do
+ACE_CHECK_DEFINE($ace_def,
+ [$2],
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_LACKS_$ace_def])]) $3],
+ [$4])dnl
+done
+])
diff --git a/ACE/m4/ace_func.m4 b/ACE/m4/ace_func.m4
new file mode 100644
index 00000000000..52ff1a0b2c1
--- /dev/null
+++ b/ACE/m4/ace_func.m4
@@ -0,0 +1,148 @@
+# ACE_FUNC_STRCASECMP
+# + Defines ACE_LACKS_STRCASECMP to 1 if platform lacks strcasecmp()
+# + Defines ACE_STRCASECMP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+# + Defines ACE_LACKS_STRCASECMP_PROTOTYPE to 1 if platform lacks
+# declaration for strcasecmp().
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_STRCASECMP],
+[ACE_CHECK_LACKS_FUNCS(strcasecmp)
+if test "$ac_cv_func_strcasecmp" = yes; then
+ AC_CHECK_DECL([strcasecmp],
+ [],
+ [AC_DEFINE([ACE_LACKS_STRCASECMP_PROTOTYPE], 1,
+ [Define to 1 if platform lacks a declaration for strcasecmp()])],
+ [
+#if !defined(ACE_LACKS_STRINGS_H)
+#include <strings.h>
+#endif
+#if !defined(ACE_LACKS_STRING_H)
+#include <string.h>
+#endif
+ ])
+else
+ AC_CHECK_FUNC(stricmp)
+ if test "$ac_cv_func_stricmp" = yes; then
+ AC_DEFINE(ACE_STRCASECMP_EQUIVALENT, [::stricmp],
+ [Define to function that is equivalent to strcasecmp()])
+ else
+ AC_CHECK_FUNC(_stricmp)
+ if test "$ac_cv_func__stricmp" = yes; then
+ AC_DEFINE(ACE_STRCASECMP_EQUIVALENT, [::_stricmp])
+ fi
+ fi
+fi
+])
+
+# ACE_FUNC_STRNCASECMP
+# + Defines ACE_LACKS_STRCASECMP to 1 if platform lacks strcasecmp()
+# + Defines ACE_STRCASECMP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+# + Defines ACE_LACKS_STRNCASECMP_PROTOTYPE to 1 if platform lacks
+# declaration for strncasecmp().
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_STRNCASECMP],
+[ACE_CHECK_LACKS_FUNCS(strncasecmp)
+if test "$ac_cv_func_strncasecmp" = yes; then
+ AC_CHECK_DECL([strncasecmp],
+ [],
+ [AC_DEFINE([ACE_LACKS_STRNCASECMP_PROTOTYPE], 1,
+ [Define to 1 if platform lacks a declaration for strncasecmp()])],
+ [
+#if !defined(ACE_LACKS_STRINGS_H)
+#include <strings.h>
+#endif
+#if !defined(ACE_LACKS_STRING_H)
+#include <string.h>
+#endif
+ ])
+else
+ AC_CHECK_FUNC(strnicmp)
+ if test "$ac_cv_func_strnicmp" = yes; then
+ AC_DEFINE(ACE_STRNCASECMP_EQUIVALENT, [::strnicmp],
+ [Define to function that is equivalent to strncasecmp()])
+ else
+ AC_CHECK_FUNC(_strnicmp)
+ if test "$ac_cv_func__strnicmp" = yes; then
+ AC_DEFINE(ACE_STRNCASECMP_EQUIVALENT, [::_strnicmp])
+ fi
+ fi
+fi
+])
+
+# ACE_FUNC_STRDUP
+# + Defines ACE_LACKS_STRDUP to 1 if platform lacks strdup()
+# + Defines ACE_STRDUP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+# + Defines ACE_HAS_NONCONST_STRDUP if argument is char*. (TODO)
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_STRDUP],
+[ACE_CHECK_LACKS_FUNCS(strdup)
+if test "$ac_cv_func_strdup" = no; then
+ AC_CHECK_FUNC(_strdup)
+ if test "$ac_cv_func__strdup" = yes; then
+ AC_DEFINE(ACE_STRDUP_EQUIVALENT, [::_strdup],
+ [Define to function that is equivalent to strdup()])
+ fi
+fi
+])
+
+
+# ACE_FUNC_WCSCASECMP
+# + Defines ACE_LACKS_WCSCASECMP to 1 if platform lacks strcasecmp()
+# + Defines ACE_WCSCASECMP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_WCSCASECMP],
+[ACE_CHECK_LACKS_FUNCS(wcscasecmp)
+if test "$ac_cv_func_wcscasecmp" = no; then
+ AC_CHECK_FUNC(wcsicmp)
+ if test "$ac_cv_func_wcsicmp" = yes; then
+ AC_DEFINE(ACE_WCSCASECMP_EQUIVALENT, [::wcsicmp],
+ [Define to function that is equivalent to wcscasecmp()])
+ else
+ AC_CHECK_FUNC(_wcsicmp)
+ if test "$ac_cv_func__wcsicmp" = yes; then
+ AC_DEFINE(ACE_WCSCASECMP_EQUIVALENT, [::_wcsicmp])
+ fi
+ fi
+fi
+])
+
+# ACE_FUNC_WCSNCASECMP
+# + Defines ACE_LACKS_WCSNCASECMP to 1 if platform lacks strcasecmp()
+# + Defines ACE_WCSNCASECMP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_WCSNCASECMP],
+[ACE_CHECK_LACKS_FUNCS(wcsncasecmp)
+if test "$ac_cv_func_wcsncasecmp" = no; then
+ AC_CHECK_FUNC(wcsnicmp)
+ if test "$ac_cv_func_wcsnicmp" = yes; then
+ AC_DEFINE(ACE_WCSNCASECMP_EQUIVALENT, [::wcsnicmp],
+ [Define to function that is equivalent to wcsncasecmp()])
+ else
+ AC_CHECK_FUNC(_wcsnicmp)
+ if test "$ac_cv_func__wcsnicmp" = yes; then
+ AC_DEFINE(ACE_WCSNCASECMP_EQUIVALENT, [::_wcsnicmp])
+ fi
+ fi
+fi
+])
+
+# ACE_FUNC_WCSDUP
+# + Defines ACE_LACKS_WCSDUP to 1 if platform lacks wcsdup()
+# + Defines ACE_WCSDUP_EQUIVALENT to identifier name if platform
+# has a equivalent function that differs in name only.
+# + Defines ACE_HAS_NONCONST_WCSDUP if argument is char*. (TODO)
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_WCSDUP],
+[ACE_CHECK_LACKS_FUNCS(wcsdup)
+if test "$ac_cv_func_wcsdup" = no; then
+ AC_CHECK_FUNC(_wcsdup)
+ if test "$ac_cv_func__wcsdup" = yes; then
+ AC_DEFINE(ACE_WCSDUP_EQUIVALENT, [::_wcsdup],
+ [Define to function that is equivalent to wcsdup()])
+ fi
+fi
+])
diff --git a/ACE/m4/ace_functions.m4 b/ACE/m4/ace_functions.m4
new file mode 100644
index 00000000000..97f70eab05c
--- /dev/null
+++ b/ACE/m4/ace_functions.m4
@@ -0,0 +1,27 @@
+# ACE_CHECK_HAS_FUNCS(FUNCTION..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_FUNCS],
+[AC_FOREACH([ACE_Func], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_HAS_[]ACE_Func),
+ [Define to 1 if platform has ]ACE_Func[().])])dnl
+for ace_func in $1
+do
+AC_CHECK_FUNC($ace_func,
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_HAS_$ace_func])]) $2],
+ [$3])dnl
+done
+])
+
+# ACE_CHECK_LACKS_FUNCS(FUNCTION..., [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_LACKS_FUNCS],
+[AC_FOREACH([ACE_Func], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_LACKS_[]ACE_Func),
+ [Define to 1 if platform lacks ]ACE_Func[().])])dnl
+for ace_func in $1
+do
+AC_CHECK_FUNC($ace_func,
+ [$2],
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_LACKS_$ace_func])]) $3])dnl
+done
+])
diff --git a/ACE/m4/ace_headers.m4 b/ACE/m4/ace_headers.m4
new file mode 100644
index 00000000000..3945fae905f
--- /dev/null
+++ b/ACE/m4/ace_headers.m4
@@ -0,0 +1,35 @@
+# ACE_CHECK_HAS_HEADERS(HEADER-FILE...,
+# [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_HEADERS],
+[AC_FOREACH([ACE_Header], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_HAS_[]ACE_Header),
+ [Define to 1 if platform has the <]ACE_Header[> header file.])])dnl
+for ace_header in $1
+do
+AC_CHECK_HEADER($ace_header,
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_HAS_$ace_header])]) $2],
+ [$3],
+ [$4])dnl
+done
+])
+
+# ACE_CHECK_LACKS_HEADERS(HEADER-FILE...,
+# [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND],
+# [INCLUDES = 'default-includes'])
+#-----------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_LACKS_HEADERS],
+[AC_FOREACH([ACE_Header], [$1],
+ [AH_TEMPLATE(AS_TR_CPP(ACE_LACKS_[]ACE_Header),
+ [Define to 1 if platform lacks the <]ACE_Header[> header file.])])dnl
+for ace_header in $1
+do
+AC_CHECK_HEADER($ace_header,
+ [$2],
+ [AC_DEFINE_UNQUOTED([AS_TR_CPP([ACE_LACKS_$ace_header])]) $3],
+ [$4])dnl
+done
+])
diff --git a/ACE/m4/acinclude.m4 b/ACE/m4/acinclude.m4
new file mode 100644
index 00000000000..f23fbb68d35
--- /dev/null
+++ b/ACE/m4/acinclude.m4
@@ -0,0 +1,602 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl ACE M4 include file which contains general M4 macros
+dnl to be used by the ACE configure script.
+dnl
+dnl The macros in this file were designed for ACE but should be
+dnl general enough for general use.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2000, 2002 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl miscellaneous macros
+
+dnl Prevent the configure script continuing any further if a CVS control
+dnl directory is found. The idea is to prevent files generated during
+dnl configuration and build from be checked in to the CVS repository that
+dnl the sources are checked into. This should only be an issue for
+dnl maintainers, not end-users. Maintainers should configure and build in
+dnl a directory that doesn't contain any CVS controlled sources and files,
+dnl i.e. that doesn't contain a CVS directory.
+dnl
+dnl Usage: ACE_CHECK_FOR_CVS_DIR
+AC_DEFUN([ACE_CHECK_FOR_CVS_DIR],
+[
+ if test -d CVS; then
+ AC_MSG_ERROR(
+ [
+ This error is meant for maintainers:
+
+ Please configure and build in a non-CVS controlled directory.
+ Doing so will prevent accidentally committing automatically
+ generated files into the CVS repository and help ensure that
+ the generated files and build scheme are correct.
+
+ For example, try the following from the top-level source
+ directory:
+
+ mkdir objdir
+ cd objdir
+ ../configure
+ make
+
+ This will create a build space in the directory `objdir' and
+ start a build in that directory.
+ ])
+ fi
+])
+
+
+dnl Prevent the configure script from continuing any further if
+dnl configuration is being performed in the top-level directory. The
+dnl idea is to prevent files generated during configuration and build
+dnl from overwriting the stock files of the same name.
+dnl Usage: ACE_CHECK_TOP_SRCDIR
+AC_DEFUN([ACE_CHECK_TOP_SRCDIR],
+[
+ if test "$srcdir" = "." && test "$USE_MAINTAINER_MODE" != "yes"; then
+ AC_MSG_ERROR(
+ [
+ Please configure and build in a directory other than the
+ top-level source directory. Doing so will prevent files
+ distributed with the package from being overwritten. This is
+ currently necessary since autoconf support is still
+ experimental. If you encounter problems please use the stock
+ build procedure.
+
+ For example, try the following from the top-level source
+ directory:
+
+ mkdir objdir
+ cd objdir
+ ../configure
+ make
+
+ This will create a build space in the directory `objdir' and
+ start a build in that directory.
+ ])
+ fi
+])
+
+dnl Add compiler flags to the CXXFLAGS and CFLAGS variables when doing an
+dnl AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]) (not ACE_TRY_COMPILE).
+dnl Use this macro when adding include directories to the compiler flags,
+dnl for example.
+dnl Usage: ACE_TRY_COMPILE(COMPILER-FLAGS, INCLUDES, FUNCTION-BODY,
+dnl [ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])
+AC_DEFUN([ACE_TRY_COMPILE],
+[
+ AC_LANG([C++])
+ AC_REQUIRE([AC_LANG])
+
+ ace_pre_try_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $1"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$2]], [[$3]])],[$4],[$5])
+
+ dnl Restore the C++ flags
+ CXXFLAGS="$ace_pre_try_CXXFLAGS"
+
+])
+
+dnl Create a temporary empty file and remove it after commands are done using
+dnl it. The directory in which the temporary file will be created in must
+dnl exist. Files will be created under the source directory, not the build
+dnl directory.
+dnl Use this macro when you need a particular file available but want it to be
+dnl empty. This is useful to prevent conflicts with autoconf's confdefs.h
+dnl header when doing an AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[],[]).
+dnl Usage: ACE_USE_TEMP_FILE(TEMP-FILE-TO-CREATE, COMMANDS-THAT-WILL-USE-IT)
+AC_DEFUN([ACE_USE_TEMP_FILE],
+[
+ test -d $1 && AC_MSG_ERROR([cannot create file: $acetmp is a directory])
+
+ dnl Make sure contents of existing file don't override the contents
+ dnl of the temporary one.
+ test -f ${srcdir}/$1 && mv ${srcdir}/$1 ${srcdir}/$1.conf
+
+ if test ${srcdir} != "."; then
+ dnl Create all of the sub-directories.
+ AS_MKDIR_P([`AS_DIRNAME(["$1"])`])
+ fi
+
+ touch $1
+
+ $2
+
+ if test -f ${srcdir}/$1.conf; then
+ mv ${srcdir}/$1.conf ${srcdir}/$1
+ fi
+
+ if test ${srcdir} != "."; then
+ dnl Remove the file. Any sub-directories will not be removed
+ dnl since we have no way to tell if they existed prior to the
+ dnl creation of this file.
+ rm $1
+ fi
+])
+
+dnl Run given test(s) with warnings converted to errors
+dnl Usage: ACE_CONVERT_WARNINGS_TO_ERRORS(TEST-BLOCK)
+AC_DEFUN([ACE_CONVERT_WARNINGS_TO_ERRORS],
+[
+dnl $WERROR is set in the ACE_SET_COMPILER_FLAGS macro.
+ AC_REQUIRE([ACE_SET_COMPILER_FLAGS])
+
+dnl Some tests may pass because the compiler issues warnings
+dnl instead of errors when errors should occur. This macro converts
+dnl warnings to errors when executing the action/test passed to this
+dnl macro so that action/test fails when it is supposed to fail; at
+dnl least that is the idea.
+
+ ace_pre_warning_CXXFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS $WERROR"
+
+ $1
+
+ CXXFLAGS="$ace_pre_warning_CXXFLAGS"
+])
+
+dnl Wrapper around AC_CACHE_VAL used to ensure "ACTION-IF" commands are run
+dnl even if results have been previously cached.
+dnl Usage: ACE_CACHE_CHECK(MESSAGE, CACHE-ID, COMMANDS-TO-SET-CACHE-VAL,
+dnl ACTION-IF-CACHE-ID-IS-YES,
+dnl ACTION-IF-CACHE-ID-IS-NO)
+dnl The COMMANDS-TO-SET-CACHE-VAL should set the CACHE-ID to yes or "no,"
+dnl otherwise the "ACTION-IF*" commands may not run. The
+dnl COMMANDS-TO-SET-CACHE-VAL should only set the CACHE value. For example,
+dnl no AC_DEFINES should be placed in the COMMANDS-TO-SET-CACHE-VAL.
+AC_DEFUN([ACE_CACHE_CHECK],
+[
+ AC_MSG_CHECKING([$1])
+ AC_CACHE_VAL([$2], [$3])
+ AC_MSG_RESULT([[$]$2])
+ if test "[$]$2" != no; then
+ ace_just_a_place_holder=fixme
+ifelse([$4], , :, [$4])
+ else
+ ace_just_a_place_holder=fixme
+ifelse([$5], , , [$5
+])
+ fi
+])
+
+dnl checks for programs
+
+dnl checks for libraries
+
+dnl checks for header files
+
+dnl checks for typedefs
+
+dnl Check for specific typedef in given header file
+dnl Usage: ACE_CHECK_TYPE(TYPEDEF, INCLUDE,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl This macro can only check for one typedef in one header file at a time!!
+AC_DEFUN([ACE_CHECK_TYPE],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+
+ ACE_CACHE_CHECK([for $1 in $2], [ace_cv_type_$1],
+ [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <$2>
+ ]], [[
+ $1 ace_$1;
+ ]])],[
+ ace_cv_type_$1=yes
+ ],[
+ ace_cv_type_$1=no
+ ])
+ ],[$3],[$4])
+])
+
+
+dnl checks for structures
+
+dnl Check for specific struct in given header file
+dnl Usage: ACE_CHECK_STRUCT(STRUCTURE, INCLUDE,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+dnl This macro can only check for one struct in one header file at a time!!
+AC_DEFUN([ACE_CHECK_STRUCT],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+
+dnl Do the transliteration at runtime so arg 1 can be a shell variable.
+dnl ac_safe=`echo "$1" | sed 'y%./+-%__p_%'`
+
+ ACE_CACHE_CHECK([for struct $1 in $2], [ace_cv_struct_$1],
+ [
+ ACE_TRY_COMPILE_STRUCT([$1], [$2],
+ [
+ ace_cv_struct_$1=yes
+ ],
+ [
+ ace_cv_struct_$1=no
+ ])
+ ], $3, $4)
+])
+
+dnl Check for specific struct in given header file by compiling a test
+dnl program. This macro is used by ACE_CHECK_STRUCT.
+dnl Usage: ACE_TRY_COMPILE_STRUCT(STRUCTURE, INCLUDE,
+dnl [ACTION-IF-SUCCESSFUL[, ACTION-IF-NOT-SUCCESSFUL]])
+dnl This macro can only check for one struct in one header file at a time!!
+AC_DEFUN([ACE_TRY_COMPILE_STRUCT],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <$2>
+ ]], [[
+ struct $1 ace_$1;
+ ]])],[
+ $3
+ ],[
+dnl Some compilers don't like the "struct" but we need the struct for
+dnl some platforms to resolve ambiguities between functions and
+dnl structures with with the same name. So, we try the same test but
+dnl without "struct" if the above test with "struct" fails. If both
+dnl tests fail, then we can be reasonably sure that we don't have the
+dnl structure we are testing for.
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+ [[
+#include <$2>
+ ]],
+ [[
+ $1 ace_$1;
+ ]])],
+ [
+ $3
+ ],
+ [
+ $4
+ ])
+ ])
+])
+
+dnl checks for variables
+
+dnl checks for compiler characteristics
+
+dnl checks for library functions
+
+dnl Check for function using prototype in header
+dnl This macro is used if a function is called a different name in a given
+dnl library than what is in the header file but the difference is made
+dnl transparent to the user since the header may provide a macro to make
+dnl things "transparent." If the given header does not exist then this
+dnl macro acts just like the standard AC_CHECK_FUNC macro.
+dnl Usage: ACE_CHECK_FUNC(FUNCTION, HEADER,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+AC_DEFUN([ACE_CHECK_FUNC],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+ AC_REQUIRE([AC_PROG_AWK])
+
+ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
+#include <$2>
+ ]])],[ace_header_exists=yes],[ace_header_exists=no])
+
+ cat > conftest.$ac_ext <<EOF
+
+#include <$2>
+ ACE_REAL_FUNCTION $1
+
+EOF
+
+ if test "$ace_header_exists" = yes; then
+ if test -z "$AWK"; then
+ AC_MSG_WARN([No awk program found. Real $1 function may not be found.])
+ fi
+
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "ACE_REAL_FUNCTION" |
+ (eval "$AWK '{print \[$]2}' > conftest.awk 2>&1"); then
+ rm -f conftest.$ac_ext
+ ace_real_function=`cat conftest.awk`
+ rm -f conftest.awk
+ fi
+
+ if test $1 != "$ace_real_function"; then
+ AC_MSG_CHECKING([for real $1 from $2])
+ AC_MSG_RESULT([$ace_real_function])
+ fi
+ else
+ ace_real_function=$1
+ fi dnl test "$ace_header_not_exist" != yes
+
+ AC_CHECK_FUNC([$ace_real_function],[$3],[$4])
+])
+
+dnl Check for function in library using prototype in header
+dnl This macro is used if a function is called a different name in a given
+dnl library than what is in the header file but the difference is made
+dnl transparent to the user since the header may provide a macro to make
+dnl things "transparent." If the given header does not exist then this
+dnl macro acts just like the standard AC_CHECK_LIB macro.
+dnl Usage: ACE_CHECK_LIB(LIBRARY, FUNCTION, HEADER,
+dnl [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
+AC_DEFUN([ACE_CHECK_LIB],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+ AC_REQUIRE([AC_PROG_AWK])
+
+ AC_PREPROC_IFELSE([AC_LANG_SOURCE([[
+#include <$3>
+ ]])],[ace_header_exists=yes],[ace_header_exists=no])
+
+ cat > conftest.$ac_ext <<EOF
+
+#include <$3>
+ ACE_REAL_FUNCTION $2
+
+EOF
+
+ if test "$ace_header_exists" = yes; then
+ if test -z "$AWK"; then
+ AC_MSG_WARN([No awk program found. "Real" function in library may not be found.])
+ fi
+
+ if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "ACE_REAL_FUNCTION" |
+ eval "$AWK '{print \[$]2}'" > conftest.awk 2>&1; then
+ rm -f conftest.$ac_ext
+ ace_real_function=`cat conftest.awk`
+ rm -f conftest.awk
+ fi
+
+ if test $2 != "$ace_real_function"; then
+ AC_MSG_CHECKING([for real $2 from $3])
+ AC_MSG_RESULT([$ace_real_function])
+ fi
+ else
+ ace_real_function=$2
+ fi dnl test "$ace_header_not_exist" != yes
+
+ AC_CHECK_LIB([$1], [$ace_real_function], [$4], [$5])
+])
+
+
+dnl Check if getrlimit() takes an enum as 1st argument
+dnl Usage: ACE_CHECK_SETRLIMIT_ENUM
+AC_DEFUN([ACE_CHECK_SETRLIMIT_ENUM],
+[
+if test "$ac_cv_func_setrlimit" = yes; then
+ AC_MSG_CHECKING([if setrlimit() takes an enum as 1st argument])
+ AC_EGREP_HEADER([setrlimit.*\(.*[^,]*enum], sys/resource.h,
+ [
+ cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <sys/resource.h>
+EOF
+
+dnl Here we attempt to determine the type of the first argument of
+dnl getrusage from its prototype. It should either be an int or an
+dnl enum. If it is an enum, determine the enum type.
+ ace_setrlimit_enum=`eval "$ac_cpp conftest.$ac_ext" | \
+ $EGREP '[[ ]]+setrlimit.*\(.*[[^,]]*enum' | \
+ sed -e 's/^.*setrlimit.*(.*enum//' -e 's/[[^ ]]*,.*$//'`
+
+ ace_setrlimit_enum="enum $ace_setrlimit_enum"
+
+ AC_MSG_RESULT([$ace_setrlimit_enum])
+
+if test -n "$ace_setrlimit_enum"; then
+ AC_DEFINE_UNQUOTED([ACE_HAS_RLIMIT_RESOURCE_ENUM], [$ace_setrlimit_enum])
+fi
+
+ rm -rf conftest*
+
+dnl Do not remove this parenthesis --> )
+dnl It's only purpose to keep Emacs from getting confused about mismatched
+dnl parentheses.
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+
+fi dnl test "$ac_cv_func_setrlimit" = yes
+])
+
+dnl Check if getrusage() takes an enum as 1st argument
+dnl Usage: ACE_CHECK_GETRUSAGE_ENUM
+AC_DEFUN([ACE_CHECK_GETRUSAGE_ENUM],
+[
+if test "$ac_cv_func_getrusage" = yes; then
+ AC_MSG_CHECKING([if getrusage() takes an enum as 1st argument])
+ AC_EGREP_HEADER([getrusage.*\(.*[^,]*enum], [sys/resource.h],
+ [
+ cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+#include <sys/resource.h>
+EOF
+
+dnl Here we attempt to determine the type of the first argument of
+dnl getrusage from its prototype. It should either be an int or an
+dnl enum. If it is an enum, determine the enum type.
+ ace_rusage_who=`eval "$ac_cpp conftest.$ac_ext" | \
+ $EGREP '[[ ]]+getrusage.*\(.*[[^,]]*enum' | \
+ sed -e 's/^.*getrusage.*(.*enum//' -e 's/[[^ ]]*,.*$//'`
+
+ ace_rusage_who="enum $ace_rusage_who"
+
+ AC_MSG_RESULT([$ace_rusage_who])
+
+if test -n "$ace_rusage_who"; then
+ AC_DEFINE_UNQUOTED([ACE_HAS_RUSAGE_WHO_ENUM], [$ace_rusage_who])
+fi
+
+ rm -rf conftest*
+
+dnl Do not remove this parenthesis --> )
+dnl It's only purpose to keep Emacs from getting confused about mismatched
+dnl parentheses.
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+
+fi dnl test "$ac_cv_func_getrusage" = yes
+])
+
+
+dnl Check for 64 bit llseek() or lseek64()
+dnl Usage: ACE_CHECK_LSEEK64
+AC_DEFUN([ACE_CHECK_LSEEK64],
+[
+ AC_CHECK_FUNC([lseek64],
+ [
+ AC_DEFINE([ACE_HAS_LSEEK64])
+
+ dnl Check for 64 bit offset type in the lseek64() prototype, if it
+ dnl exists.
+ dnl ACE_CHECK_OFF64_T([lseek64])
+
+ dnl Check if _LARGEFILE64_SOURCE macro is needed to make the
+ dnl lseek64() prototype visible, or if the prototype itself is missing.
+ ACE_CACHE_CHECK([for lseek64 prototype],
+ [ace_cv_lib_has_lseek64_prototype],
+ [
+ ace_save_CPPFLAGS="$CPPFLAGS"
+ ace_no_largefile64="-U_LARGEFILE64_SOURCE"
+ CPPFLAGS="$CPPFLAGS $ace_no_largefile64"
+ AC_EGREP_HEADER([[^_]+lseek64], [unistd.h],
+ [
+ ace_cv_lib_has_lseek64_prototype=yes
+ ],
+ [
+ ace_cv_lib_has_lseek64_prototype=no
+ ])
+ dnl Reset the compiler flags
+ CPPFLAGS="$ace_save_CPPFLAGS"
+ ],[],[AC_DEFINE([ACE_LACKS_LSEEK64_PROTOTYPE])])
+ ],
+ [
+ AC_CHECK_FUNC([llseek],
+ [
+ AC_DEFINE([ACE_HAS_LLSEEK])
+ dnl Check if _LARGEFILE64_SOURCE macro is needed to make the
+ dnl llseek() prototype visible, or if the prototype itself is
+ dnl missing.
+
+ dnl Check for 64 bit offset type in the llseek() prototype, if
+ dnl it exists.
+ dnl ACE_CHECK_OFF64_T([llseek])
+
+ ACE_CACHE_CHECK([for llseek prototype],
+ [ace_cv_lib_has_llseek_prototype],
+ [
+ ace_save_CPPFLAGS="$CPPFLAGS"
+ ace_no_largefile64="-U_LARGEFILE64_SOURCE"
+ CPPFLAGS="$CPPFLAGS $ace_no_largefile64"
+ AC_EGREP_HEADER([[^_]+llseek],[unistd.h],
+ [
+ ace_cv_lib_has_llseek_prototype=no
+ ],
+ [
+ ace_cv_lib_has_llseek_prototype=yes
+ ],)
+ dnl Reset the compiler flags
+ CPPFLAGS="$ace_save_CPPFLAGS"
+ ],[],[AC_DEFINE([ACE_LACKS_LLSEEK_PROTOTYPE])])
+
+
+ ],)
+ ])
+])
+
+dnl Check what the 64 bit offset type is by checking what the offset
+dnl argument for llseek()/lseek64() is.
+dnl Usage: ACE_CHECK_LOFF_64(LSEEK64-FUNC)
+AC_DEFUN([ACE_CHECK_OFF64_T],
+[
+ AC_MSG_CHECKING([for 64 bit offset type])
+ AC_EGREP_HEADER([[ ]+$1.*\(.*],[unistd.h],
+ [
+ cat > conftest.$ac_ext <<EOF
+#include "confdefs.h"
+
+/* Make sure 64 bit file feature test macro is defined. */
+#ifndef _LARGEFILE64_SOURCE
+# define _LARGEFILE64_SOURCE
+#endif
+
+#ifndef ACE_LACKS_UNISTD_H
+# include <unistd.h> /* needed for lseek64()/llseek() prototype */
+#endif
+EOF
+
+dnl Here we attempt to determine the type of the second argument of
+dnl lseek64()/llseek() from its prototype.
+ ace_off64_t=`eval "$ac_cpp conftest.$ac_ext" | \
+ $EGREP '[[ ]]+lseek64.*\(.*' | \
+ sed -e 's/^.*(.*,[[ ]]*\(.*\) .*,.*$/\1/'`
+
+
+if test -n "$ace_off64_t"; then
+ AC_MSG_RESULT([$ace_off64_t])
+ AC_DEFINE_UNQUOTED([ACE_LOFF_T_TYPEDEF], [$ace_off64_t])
+fi
+
+ rm -rf conftest*
+
+dnl Do not remove this parenthesis --> )
+dnl It's only purpose is to keep Emacs from getting confused about
+dnl mismatched parentheses.
+ ],
+ [
+ AC_MSG_RESULT([no])
+ ])
+])
+
+dnl checks for structures
+
+dnl checks for system services
diff --git a/ACE/m4/aio.m4 b/ACE/m4/aio.m4
new file mode 100644
index 00000000000..aaa5622dd33
--- /dev/null
+++ b/ACE/m4/aio.m4
@@ -0,0 +1,633 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl aio.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl that determine availablility of POSIX asynchronous IO
+dnl support.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2002 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+dnl Asynchronous IO check
+dnl Use this macro to determine if asynchronous IO is working on a
+dnl given platform.
+dnl Usage: ACE_CHECK_ASYNCH_IO
+AC_DEFUN([ACE_CHECK_ASYNCH_IO],
+[
+ AC_REQUIRE([AC_PROG_CXX])
+ AC_REQUIRE([AC_PROG_CXXCPP])
+ AC_LANG([C++])
+ AC_REQUIRE([AC_LANG])
+ AC_REQUIRE([ACE_CHECK_THREADS])
+
+ dnl In case a library with the asynchronous libraries is found but
+ dnl the asynchronous IO support is not functional then save a copy
+ dnl of the list of libraries before the asynch IO function library
+ dnl is added to the list so that we can revert the list to its
+ dnl pre-asynch-IO check state.
+ ace_save_LIBS="$LIBS"
+
+ dnl Asynchronous IO library check
+ dnl Some platforms, such as Solaris puts aio_read in -lposix4, for example.
+ dnl In some cases, the thread library must be linked to in addition to the
+ dnl real-time support library. As such, make sure these checks are done
+ dnl after the thread library checks.
+ AC_SEARCH_LIBS([aio_read], [aio rt posix4],
+ [ace_has_aio_funcs=yes], [ace_has_aio_funcs=no])
+
+if test "$ace_has_aio_funcs" = yes; then
+ ACE_CACHE_CHECK([for working asynchronous IO],
+ [ace_cv_feature_aio_calls],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#ifndef ACE_LACKS_UNISTD_H
+#include <unistd.h>
+#endif
+#include <fcntl.h>
+#ifndef ACE_LACKS_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#include <sys/stat.h>
+#include <signal.h>
+#include <string.h>
+#include <errno.h>
+#include <stdio.h>
+#include <iostream.h>
+
+#include <aio.h>
+
+class Test_Aio
+{
+public:
+ Test_Aio (void);
+ // Default constructor.
+
+ int init (void);
+ // Initting the output file and the buffer.
+
+ int do_aio (void);
+ // Doing the testing stuff.
+
+ ~Test_Aio (void);
+ // Destructor.
+private:
+ int out_fd_;
+ // Output file descriptor.
+
+ struct aiocb *aiocb_write_;
+ // For writing to the file.
+
+ struct aiocb *aiocb_read_;
+ // Reading stuff from the file.
+
+ char *buffer_write_;
+ // The buffer to be written to the out_fd.
+
+ char *buffer_read_;
+ // The buffer to be read back from the file.
+};
+
+Test_Aio::Test_Aio (void)
+ : out_fd_ (0),
+ aiocb_write_ (new struct aiocb),
+ aiocb_read_ (new struct aiocb),
+ buffer_write_ (0),
+ buffer_read_ (0)
+{
+}
+
+Test_Aio::~Test_Aio (void)
+{
+ if (close (this->out_fd_) != 0)
+ perror ("close");
+
+ delete aiocb_write_;
+ delete aiocb_read_;
+ delete [] buffer_write_;
+ delete [] buffer_read_;
+}
+
+// Init the output file and init the buffer.
+int
+Test_Aio::init (void)
+{
+ // Open the output file.
+ this->out_fd_ = open ("test_aio.log", O_RDWR | O_CREAT | O_TRUNC, 0600);
+ if (this->out_fd_ == -1)
+ {
+ perror ("open");
+ return -1;
+ }
+
+ unlink ("test_aio.log"); // Unlink now so we don't have to do so later.
+
+ const char message[] = "Welcome to the world of AIO... AIO Rules !!!";
+
+ // Init the buffers.
+ this->buffer_write_ = new char [sizeof (message) + 1];
+ strcpy (this->buffer_write_, message);
+ // cout << "The buffer : " << this->buffer_write_ << endl;
+ this->buffer_read_ = new char [sizeof (message) + 1];
+
+ return 0;
+}
+
+// Set the necessary things for the AIO stuff.
+// Write the buffer asynchly.hmm Disable signals.
+// Go on aio_suspend. Wait for completion.
+// Print out the result.
+int
+Test_Aio::do_aio (void)
+{
+ // = Write to the file.
+
+ // Setup AIOCB.
+ this->aiocb_write_->aio_fildes = this->out_fd_;
+ this->aiocb_write_->aio_offset = 0;
+ this->aiocb_write_->aio_buf = this->buffer_write_;
+ this->aiocb_write_->aio_nbytes = strlen (this->buffer_write_);
+ this->aiocb_write_->aio_reqprio = 0;
+ this->aiocb_write_->aio_sigevent.sigev_notify = SIGEV_NONE;
+ //this->this->aiocb_.aio_sigevent.sigev_signo = SIGRTMAX;
+ this->aiocb_write_->aio_sigevent.sigev_value.sival_ptr =
+ (void *) this->aiocb_write_;
+
+ // Fire off the aio write.
+ if (aio_write (this->aiocb_write_) != 0)
+ {
+ perror ("aio_write");
+ return -1;
+ }
+
+ // = Read from that file.
+
+ // Setup AIOCB.
+ this->aiocb_read_->aio_fildes = this->out_fd_;
+ this->aiocb_read_->aio_offset = 0;
+ this->aiocb_read_->aio_buf = this->buffer_read_;
+ this->aiocb_read_->aio_nbytes = strlen (this->buffer_write_);
+ this->aiocb_read_->aio_reqprio = 0;
+ this->aiocb_read_->aio_sigevent.sigev_notify = SIGEV_NONE;
+ //this->this->aiocb_.aio_sigevent.sigev_signo = SIGRTMAX;
+ this->aiocb_read_->aio_sigevent.sigev_value.sival_ptr =
+ (void *) this->aiocb_read_;
+
+ // Fire off the aio write. If it doesnt get queued, carry on to get
+ // the completion for the first one.
+ if (aio_read (this->aiocb_read_) < 0)
+ perror ("aio_read");
+
+ // Wait for the completion on aio_suspend.
+ struct aiocb *list_aiocb[2];
+ list_aiocb [0] = this->aiocb_write_;
+ list_aiocb [1] = this->aiocb_read_;
+
+ // Do suspend till all the aiocbs in the list are done.
+ int done = 0;
+ while (!done)
+ {
+ if (aio_suspend (list_aiocb, 2, 0) != 0)
+ {
+ perror ("aio_suspend");
+ return -1;
+ }
+
+ // Analyze return and error values.
+ if (list_aiocb [0] != 0 && aio_error (list_aiocb [0]) != EINPROGRESS)
+ {
+ if (aio_return (list_aiocb [0]) == -1)
+ {
+ perror ("aio_return");
+ return -1;
+ }
+ else
+ {
+ // Successful. Store the pointer somewhere and make the
+ // entry NULL in the list.
+ // @@ no need ----> this->aiocb_write_ = list_aiocb [0];
+ list_aiocb [0] = 0;
+ }
+ }
+// else
+// cout << "AIO in progress" << endl;
+
+ if (list_aiocb [1] != 0 && aio_error (list_aiocb [1]) != EINPROGRESS)
+ {
+ if (aio_return (list_aiocb [1]) == -1)
+ {
+ perror ("aio_return");
+ return -1;
+ }
+ else
+ {
+ // Successful. Store the pointer somewhere and make the
+ // entry NULL in the list.
+ // @@ no need ----> this->aiocb_read_ = list_aiocb [1];
+ list_aiocb [1] = 0;
+ }
+ }
+// else
+// cout << "AIO in progress" << endl;
+
+ // Is it done?
+ if ((list_aiocb [0] == 0) && (list_aiocb [1] == 0))
+ done = 1;
+ }
+
+ //cout << "Both the AIO operations done." << endl;
+ //cout << "The buffer is :" << this->buffer_read_ << endl;
+
+ return 0;
+}
+
+int
+main ()
+{
+ Test_Aio test_aio;
+
+ if (test_aio.init () != 0)
+ {
+ //printf ("AIOCB test failed:\n"
+ // "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
+ return -1;
+ }
+
+ if (test_aio.do_aio () != 0)
+ {
+ //printf ("AIOCB test failed:\n"
+ // "ACE_POSIX_AIOCB_PROACTOR may not work in this platform\n");
+ return -1;
+ }
+ //printf ("AIOCB test successful:\n"
+ // "ACE_POSIX_AIOCB_PROACTOR should work in this platform\n");
+ return 0;
+}
+ ]])],[
+ ace_cv_feature_aio_calls=yes
+ ],[
+ ace_cv_feature_aio_calls=no
+ ],[
+ dnl Asynchronous IO test for cross-compiled platforms
+ dnl This test is weaker than the above run-time tests but it will
+ dnl have to do.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <aio.h>
+ ]],
+ [[
+ aiocb* aiocb_ptr (void);
+ ]])],
+ [
+ ace_cv_feature_aio_calls=yes
+ ],
+ [
+ ace_cv_feature_aio_calls=no
+ ])
+ ])
+ ],[AC_DEFINE([ACE_HAS_AIO_CALLS])],[LIBS="$ace_save_LIBS"])
+fi dnl test "$ace_has_aio_funcs" = yes
+
+
+if test "$ace_cv_feature_aio_calls" = yes; then
+ ACE_CACHE_CHECK([for working POSIX realtime signals],
+ [ace_cv_feature_posix_rt_sigs],
+ [
+ dnl Create a file for the test program to read.
+ cat > test_aiosig.txt <<EOF
+
+*******************************************************
+FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR FOO BAR
+*******************************************************
+EOF
+
+
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+extern "C" {
+#include <signal.h>
+}
+#ifndef ACE_LACKS_UNISTD_H
+#include <unistd.h>
+#endif
+#include <fcntl.h>
+#ifndef ACE_LACKS_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#include <sys/stat.h>
+#include <pthread.h>
+#include <string.h>
+#include <errno.h>
+#include <stdio.h>
+
+#include <limits.h>
+
+#include <aio.h>
+
+#ifdef __cplusplus
+extern "C"
+#endif
+void null_handler (int /* signal_number */,
+ siginfo_t * /* info */,
+ void * /* context */);
+
+int file_handle = -1;
+char mb1[BUFSIZ + 1];
+char mb2[BUFSIZ + 1];
+aiocb aiocb1, aiocb2;
+sigset_t completion_signal;
+
+// Function prototypes.
+int setup_signal_delivery (void);
+int issue_aio_calls (void);
+int query_aio_completions (void);
+int test_aio_calls (void);
+int setup_signal_handler (void);
+int setup_signal_handler (int signal_number);
+
+int
+setup_signal_delivery (void)
+{
+ // Make the sigset_t consisting of the completion signal.
+ if (sigemptyset (&completion_signal) == -1)
+ {
+ perror ("Error:Couldn't init the RT completion signal set\n");
+ return -1;
+ }
+
+ if (sigaddset (&completion_signal, SIGRTMIN) == -1)
+ {
+ perror ("Error:Couldn't init the RT completion signal set\n");
+ return -1;
+ }
+
+ // Mask them.
+ if (pthread_sigmask (SIG_BLOCK, &completion_signal, 0) == -1)
+ {
+ perror ("Error:Couldn't make the RT completion signals\n");
+ return -1;
+ }
+
+ return setup_signal_handler (SIGRTMIN);
+}
+
+int
+issue_aio_calls (void)
+{
+ // Setup AIOCB.
+ aiocb1.aio_fildes = file_handle;
+ aiocb1.aio_offset = 0;
+ aiocb1.aio_buf = mb1;
+ aiocb1.aio_nbytes = BUFSIZ;
+ aiocb1.aio_reqprio = 0;
+ aiocb1.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
+ aiocb1.aio_sigevent.sigev_signo = SIGRTMIN;
+ aiocb1.aio_sigevent.sigev_value.sival_ptr = (void *) &aiocb1;
+
+ // Fire off the aio write.
+ if (aio_read (&aiocb1) == -1)
+ {
+ // Queueing failed.
+ perror ("Error:Asynch_Read_Stream: aio_read queueing failed\n");
+ return -1;
+ }
+
+ // Setup AIOCB.
+ aiocb2.aio_fildes = file_handle;
+ aiocb2.aio_offset = BUFSIZ + 1;
+ aiocb2.aio_buf = mb2;
+ aiocb2.aio_nbytes = BUFSIZ;
+ aiocb2.aio_reqprio = 0;
+ aiocb2.aio_sigevent.sigev_notify = SIGEV_SIGNAL;
+ aiocb2.aio_sigevent.sigev_signo = SIGRTMIN;
+ aiocb2.aio_sigevent.sigev_value.sival_ptr = (void *) &aiocb2;
+
+ // Fire off the aio write.
+ if (aio_read (&aiocb2) == -1)
+ {
+ // Queueing failed.
+ perror ("Error:Asynch_Read_Stream: aio_read queueing failed\n");
+ return -1;
+ }
+ return 0;
+}
+
+int
+query_aio_completions (void)
+{
+ int result = 0;
+ size_t number_of_completions = 0;
+ for (number_of_completions = 0;
+ number_of_completions < 2;
+ number_of_completions++)
+ {
+ // Wait for <milli_seconds> amount of time.
+ // @@ Assigning <milli_seconds> to tv_sec.
+ timespec timeout;
+ timeout.tv_sec = 5;
+ timeout.tv_nsec = 0;
+
+ // To get back the signal info.
+ siginfo_t sig_info;
+
+ // Await the RT completion signal.
+ int sig_return = sigtimedwait (&completion_signal,
+ &sig_info,
+ &timeout);
+
+ // Error case.
+ // If failure is coz of timeout, then return *0* but set
+ // errno appropriately. This is what the WinNT proactor
+ // does.
+ if (sig_return == -1)
+ {
+ perror ("Error:Error waiting for RT completion signals\n");
+ return -1;
+ }
+
+ // RT completion signals returned.
+ if (sig_return != SIGRTMIN)
+ {
+ //printf ("Unexpected signal (%d) has been received while waiting for RT Completion Signals\n",
+ // sig_return);
+ return -1;
+ }
+
+ // @@ Debugging.
+ //printf ("Sig number found in the sig_info block : %d\n",
+ // sig_info.si_signo);
+
+ // Is the signo returned consistent?
+ if (sig_info.si_signo != sig_return)
+ {
+ //printf ("Inconsistent signal number (%d) in the signal info block\n",
+ // sig_info.si_signo);
+ return -1;
+ }
+
+ // @@ Debugging.
+ //printf ("Signal code for this signal delivery : %d\n",
+ // sig_info.si_code);
+
+ // Is the signal code an aio completion one?
+ if ((sig_info.si_code != SI_ASYNCIO) &&
+ (sig_info.si_code != SI_QUEUE))
+ {
+ //printf ("Unexpected signal code (%d) returned on completion querying\n",
+ // sig_info.si_code);
+ return -1;
+ }
+
+ // Retrive the aiocb.
+ aiocb* aiocb_ptr = (aiocb *) sig_info.si_value.sival_ptr;
+
+ // Analyze error and return values. Return values are
+ // actually <errno>'s associated with the <aio_> call
+ // corresponding to aiocb_ptr.
+ int error_code = aio_error (aiocb_ptr);
+ if (error_code == -1)
+ {
+ perror ("Error:Invalid control block was sent to <aio_error> for compleion querying\n");
+ return -1;
+ }
+
+ if (error_code != 0)
+ {
+ // Error occurred in the <aio_>call. Return the errno
+ // corresponding to that <aio_> call.
+ //printf ("Error:An AIO call has failed:Error code = %d\n",
+ // error_code);
+ return -1;
+ }
+
+ // No error occured in the AIO operation.
+ int nbytes = aio_return (aiocb_ptr);
+ if (nbytes == -1)
+ {
+ perror ("Error:Invalid control block was sent to <aio_return>\n");
+ return -1;
+ }
+
+ //if (number_of_completions == 0)
+ // Print the buffer.
+ //printf ("Number of bytes transferred : %d\n The buffer : %s \n",
+ // nbytes,
+ // mb1);
+ //else
+ // Print the buffer.
+ //printf ("Number of bytes transferred : %d\n The buffer : %s \n",
+ // nbytes,
+ // mb2);
+ }
+ return 0;
+}
+
+int
+test_aio_calls (void)
+{
+ // Set up the input file.
+ // Open file (in SEQUENTIAL_SCAN mode)
+ file_handle = open ("test_aiosig.txt", O_RDONLY);
+
+ if (file_handle == -1)
+ {
+ perror ("open");
+ return -1;
+ }
+
+ unlink ("test_aiosig.txt"); // Unlink now so we don't have to do so later.
+
+ if (setup_signal_delivery () < 0)
+ return -1;
+
+ if (issue_aio_calls () < 0)
+ return -1;
+
+ if (query_aio_completions () < 0)
+ return -1;
+
+ if (close (file_handle) != 0)
+ {
+ perror ("close");
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+setup_signal_handler (int signal_number)
+{
+ // Setting up the handler(!) for these signals.
+ struct sigaction reaction;
+ sigemptyset (&reaction.sa_mask); // Nothing else to mask.
+ reaction.sa_flags = SA_SIGINFO; // Realtime flag.
+#if defined (SA_SIGACTION)
+ // Lynx says, it is better to set this bit to be portable.
+ reaction.sa_flags &= SA_SIGACTION;
+#endif /* SA_SIGACTION */
+ reaction.sa_sigaction = null_handler; // Null handler.
+ int sigaction_return = sigaction (SIGRTMIN,
+ &reaction,
+ 0);
+ if (sigaction_return == -1)
+ {
+ perror ("Error:Proactor couldn't do sigaction for the RT SIGNAL");
+ return -1;
+ }
+
+ return 0;
+}
+
+void
+null_handler (int /* signal_number */,
+ siginfo_t * /* info */,
+ void * /* context */)
+{
+}
+
+int
+main ()
+{
+ if (test_aio_calls () == 0)
+ {
+ // printf ("RT SIG test successful:\n"
+ // "ACE_POSIX_SIG_PROACTOR should work in this platform\n");
+ return 0;
+ }
+
+ //printf ("RT SIG test failed:\n"
+ // "ACE_POSIX_SIG_PROACTOR may not work in this platform\n");
+ return -1;
+
+}
+ ]])],
+ [
+ ace_cv_feature_posix_rt_sigs=yes
+ ],
+ [
+ ace_cv_feature_posix_rt_sigs=no
+ ],
+ [
+ dnl Don't bother doing anything for cross-compiling here
+ dnl since the basic aio run-time test will prevent this
+ dnl rt sig run-time test from ever running when cross-compiling.
+ dnl We just put something in here to prevent autoconf
+ dnl from complaining.
+ ace_just_a_place_holder=ignoreme
+ ])
+ ],[AC_DEFINE([ACE_HAS_POSIX_REALTIME_SIGNALS])],[])
+fi dnl test "$ace_cv_feature_aio_calls" = yes
+
+])
diff --git a/ACE/m4/compiler.m4 b/ACE/m4/compiler.m4
new file mode 100644
index 00000000000..ce202c8b8b7
--- /dev/null
+++ b/ACE/m4/compiler.m4
@@ -0,0 +1,426 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl compiler.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl that set/determine compiler configurations for ACE.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2003 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl Macros to set flags for a given compiler on a given platform.
+dnl The flags set here are generally only useful for _KNOWN_ compilers.
+
+dnl ACE_SET_COMPILER_FLAGS
+dnl Usage: ACE_SET_COMPILER_FLAGS
+AC_DEFUN([ACE_SET_COMPILER_FLAGS],
+[
+dnl AC_BEFORE([$0], [AC_PROG_LIBTOOL])
+
+ dnl Make sure we know what C++ compiler and preprocessor we have!
+ AC_REQUIRE([AC_PROG_CXX])
+ AC_REQUIRE([AC_PROG_CXXCPP])
+ AC_LANG([C++])
+ AC_REQUIRE([AC_LANG])
+
+ AC_REQUIRE([ACE_COMPILATION_OPTIONS])
+
+ ACE_GXX_MAJOR_VERSION=0
+
+ if test "$GXX" = yes; then
+ ACE_GXX_MAJOR_VERSION=`$CXX -dumpversion | sed -e 's/\..*$//'`
+
+dnl @todo Clean up / consolidate these conditionals
+
+ if test "$ACE_GXX_MAJOR_VERSION -ge 3"; then
+ if test "$ace_user_enable_exceptions" != yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fcheck-new"
+ fi
+ else
+ case `$CXX --version` in
+ 2.9*)
+ if test "$ace_user_enable_exceptions" != yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fcheck-new"
+ fi
+ ;;
+ esac
+ fi
+ fi
+
+ dnl Compiler Flag Key
+ dnl CXXFLAGS - C++ flags to use during the configure script run and
+ dnl during ACE compilation. The user may set this prior to
+ dnl running the configure script. As such, it is important
+ dnl not to replace the existing value of CXXFLAGS; rather
+ dnl one should only add to it.
+ dnl ACE_CXXFLAGS
+ dnl - General C++ flags the configure script should set before
+ dnl CXXFLAGS to allow the user override them.
+ dnl DCXXFLAGS - C++ debugging flags
+ dnl OCXXFLAGS - C++ optimization flags
+ dnl CPPFLAGS - C++ preprocessor flags
+ dnl ACE_CPPFLAGS
+ dnl - General C++ preprocessor flags the configure
+ dnl script should set before CPPFLAGS to allow the
+ dnl user to override them.
+ dnl WERROR - Compiler flag that converts warnings to errors
+
+ if test "$GXX" = yes; then
+ WERROR="-Werror"
+ fi
+
+ case "$host" in
+ *aix*)
+ dnl In case anything here or in the config depends on OS
+ dnl version number, grab it here and pass it all to the
+ dnl compiler as well.
+ AIX_VERS=`uname -v`0`uname -r`
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_AIX_VERS=$AIX_VERS"
+
+ case "$CXX" in
+ xlC*)
+ dnl AIX compilers need to have RTTI enabled and ACE requires it.
+ CXXFLAGS="$CXXFLAGS -qrtti=all"
+ TEMPLATE_OPTION='-qnotempinc -qnotemplateregistry -DACE_TEMPLATES_REQUIRE_SOURCE'
+ ACE_CXXFLAGS="$ACE_CXXFLAGS $TEMPLATE_OPTION"
+ DCXXFLAGS="-g -qcheck=nobounds:div:null"
+ OCXXFLAGS="-qlibansi -qarch=com"
+ CPPFLAGS="$CPPFLAGS"
+ # Use -qhalt=i to cause the compiler to signal failure on any
+ # diagnostic when converting warnings to errors. This helps to
+ # find that #pragma once is invalid, even though xlC only triggers
+ # an informational message, not a warning.
+ WERROR="-qhalt=i"
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ ACE_CXXFLAGS="-mcpu=common"
+ fi
+ ;;
+ esac
+ ;;
+ *chorus*)
+ ;;
+ *cray*)
+ ;;
+ *dgux*)
+ case "$CXX" in
+ ec++)
+ CXXFLAGS="$CXXFLAGS"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -relax -v -eh"
+ DCXXFLAGS="-g"
+ OCXXFLAGS=""
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS"
+ fi
+ ;;
+ esac
+ ;;
+ *freebsd*)
+ ;;
+ *hpux*)
+ # In case anything here or in the config depends on OS
+ # version number, grab it here and pass it all to the
+ # compiler as well.
+ OSVERS=`uname -r | $AWK 'BEGIN{FS=".";OFS="";}{print [$][2],[$][3]}' -`
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -DHPUX_VERS=$OSVERS"
+
+ # HP-UX OS version specific settings.
+ case "$host" in
+ *hpux11*)
+# aCC's "-mt" flag detected by the configure script should already set
+# the appropriate preprocessor, compiler and linker flags.
+# if test "$ace_user_enable_threads" = yes; then
+# # Prefer kernel threads over CMA (user) threads.
+# ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_C_SOURCE=199506L"
+# fi
+ ;;
+ esac
+
+ # HP-UX compiler specific settings.
+ case "$CXX" in
+ CC)
+ CXXFLAGS="$CXXFLAGS -pta -ti,/bin/true -tr,/bin/true"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -Aa -z +a1"
+ DCXXFLAGS="-g"
+ OCXXFLAGS=""
+ ;;
+ aCC)
+ CFLAGS = "${CFLAGS:-} -Ae"
+ # -AA has been available since aC++ x.27 (2001?) - if using a
+ # compiler without this support, must --enable_stdcpplib=no.
+ if test "$ace_user_enable_stdcpplib" = yes; then
+ CXXFLAGS="$CXXFLAGS -AA"
+ fi
+ # Warning 930 is spurious when new(std::nothrow) is
+ # used. Reported to HP as support call 3201224717. (Steve
+ # Huston, 23-Nov-2002)
+ #
+ # Suppress warning 302 ((...) parameter list is a
+ # non-portable feature)
+ #
+ # Additionally, on HP-UX 10.20, suppress 495 to shut up the
+ # warnings from the system header files. 667 is also
+ # suppressed, but the compiler still tells you there was a
+ # future error, but at least you can pick out any real errors
+ # by quickly scanning the output. 829 is suppressed because
+ # the system headers have offending string literals assigned
+ # to char *.
+ ACE_CXXFLAGS="$ACE_CXXFLAGS +W302,495,667,829,908,930"
+ DCXXFLAGS="-g"
+ OCXXFLAGS="-O"
+ # Warning 67: Invalid pragma name -- needed for
+ # ACE_LACKS_PRAGMA_ONCE
+ WERROR="+We67 +p +We"
+
+ # If exception support is explicitly disabled, tell the
+ # compiler. This is not recommended since the run-time
+ # library can throw exceptions.
+ if test "$ace_user_enable_exceptions" != yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS +noeh"
+ fi
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -w"
+ fi
+ ;;
+ esac
+ ;;
+ *irix5*)
+ case "$CXX" in
+ CC)
+ CXXFLAGS="$CXXFLAGS -ptused -prelink +pp -woff 3203,3209,3161,3262,3665"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS "
+ DCXXFLAGS="-g"
+ OCXXFLAGS=""
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ *irix6*)
+ case "$CXX" in
+ CC)
+ CPPFLAGS="$CPPFLAGS -D_SGI_MP_SOURCE"
+ CXXFLAGS="$CXXFLAGS -exceptions -ptnone -no_prelink -Wl,-woff,15 -Wl,-woff,84 -Wl,-woff,85 -Wl,-woff,133"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS "
+ DCXXFLAGS="-g"
+ OCXXFLAGS="-O -OPT:Olimit=0"
+ ;;
+ esac
+ ;;
+ *linux*)
+ case "$CXX" in
+ *icpc|*icc)
+ CXXFLAGS="$CXXFLAGS -i-dynamic -w1"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS"
+ DCXXFLAGS="$DCXXFLAGS"
+ WERROR="-Werror -wr -Wall"
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ CXXFLAGS="$CXXFLAGS"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS"
+ DCXXFLAGS="$DCXXFLAGS"
+ OCXXFLAGS="-O3"
+ fi
+ ;;
+ esac
+ ;;
+ *lynxos*)
+ ;;
+ *m88k*)
+ ;;
+ *mvs*)
+ ;;
+ *netbsd*)
+ ;;
+ *osf*)
+ ;;
+ *psos*)
+ ;;
+ *sco*)
+ ;;
+ *sunos4*)
+ ;;
+ *solaris2*)
+ case "$CXX" in
+ CC)
+ WERROR="-xwe"
+
+ if test "$ace_user_enable_exceptions" != yes; then
+ CXXFLAGS="$CXXFLAGS -noex"
+ fi
+
+ dnl Some flags only work with Sun C++ 4.2. ACE requires RTTI.
+ if (CC -V 2>&1 | $EGREP 'Compilers 4\.2' > /dev/null); then
+ CXXFLAGS="$CXXFLAGS -features=castop -features=rtti"
+ fi
+
+ dnl Sun C++ 5.0 weirdness
+ if (CC -V 2>&1 | $EGREP 'Compilers 5\.0' > /dev/null); then
+ if test "$ace_user_enable_stdcpplib" = yes; then
+ CXXFLAGS="$CXXFLAGS -library=Cstd"
+ else
+ CXXFLAGS="$CXXFLAGS -library=iostream,no%Cstd"
+ AC_DEFINE([ACE_USES_OLD_IOSTREAMS])
+ fi
+
+ dnl Inlining appears to cause link problems with early
+ dnl releases of CC 5.0.
+ AC_DEFINE([ACE_LACKS_INLINE_FUNCTIONS])
+
+ if test "$ace_user_enable_exceptions" != yes; then
+ dnl See /opt/SUNWspro_5.0/SC5.0/include/CC/stdcomp.h.
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_RWSTD_NO_EXCEPTIONS"
+ fi
+
+ CXXFLAGS="$CXXFLAGS -instances=explicit"
+ fi
+
+ CXXFLAGS="$CXXFLAGS"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS"
+ DCXXFLAGS="$DCXXFLAGS -g"
+ OCXXFLAGS="$OCXXFLAGS -O"
+ ;;
+ esac
+ ;;
+ *tandem*)
+ ;;
+ *unixware*)
+ ;;
+ *vxworks*)
+ ;;
+ *)
+ CXXFLAGS="$CXXFLAGS"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS"
+ DCXXFLAGS="-g"
+ OCXXFLAGS="-O"
+ ;;
+ esac
+
+ dnl Warning flags
+ if test "$GCC" = yes; then
+ ACE_CFLAGS="$ACE_CFLAGS -W -Wall -Wpointer-arith"
+ fi
+ if test "$GXX" = yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -W -Wall -Wpointer-arith"
+ fi
+
+ dnl Symbol Visibility flags
+ dnl Take advantage of visibility attributes when using g++ 4.0 or
+ dnl better.
+ if test "$GXX" = yes; then
+ dnl As of this writing, there are symbol visibility issues on some
+ dnl platforms. The --disable-symbol-visibility option is intended
+ dnl to allow users to explicitly disable symbol visibility support
+ dnl in the cases where it does not work (or does not work properly),
+ dnl but the feature test selects it anyway.
+
+ AC_ARG_ENABLE([symbol-visibility],
+ AS_HELP_STRING([--enable-symbol-visibility],
+ [build with gcc symbol visibility attributes [[[no]]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_symbol_visibility=yes
+ ;;
+ no)
+ ace_user_enable_symbol_visibility=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-symbol-visibility])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_symbol_visibility=no
+ ])
+
+ if test "$ace_user_enable_symbol_visibility" = yes; then
+ ACE_CHECK_CXXFLAGS([fvisibility=hidden],
+ [
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fvisibility=hidden"
+ AC_DEFINE([ACE_HAS_CUSTOM_EXPORT_MACROS])
+ AC_DEFINE([ACE_Proper_Export_Flag],
+ [__attribute__ ((visibility("default")))])
+ ])
+ ACE_CHECK_CXXFLAGS([fvisibility-inlines-hidden],
+ [
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fvisibility-inlines-hidden"
+ ])
+ fi
+ fi
+
+ dnl Additional flags
+ if test "$GXX" = yes; then
+ case `$CXX --version` in
+ 2.9*)
+ if test "$ace_user_enable_exceptions" != yes; then
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fcheck-new"
+ fi
+ ;;
+ esac
+
+dnl if test "$ace_user_enable_repo" = no; then
+dnl ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-implicit-templates"
+dnl fi
+ fi
+])
+
+AC_DEFUN([ACE_CHECK_CFLAGS],
+[
+AS_VAR_PUSHDEF([VAR],'ace_cv_cflag_$1')
+AC_MSG_CHECKING([whether $CC supports -$1])
+AC_LANG_SAVE
+AC_LANG([C])
+ace_save_CFLAGS=$CFLAGS
+CFLAGS="$CFLAGS -$1"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0])],[VAR=yes],[VAR=no])
+CFLAGS=$ace_save_CFLAGS
+AC_LANG_RESTORE
+if test $VAR = yes; then
+ AC_MSG_RESULT([yes])
+ $2
+else
+ AC_MSG_RESULT([no])
+ $3
+fi
+AS_VAR_POPDEF([VAR])
+])
+
+AC_DEFUN([ACE_CHECK_CXXFLAGS],
+[
+AS_VAR_PUSHDEF([VAR],'ace_cv_cxxflag_$1')
+AC_MSG_CHECKING([whether $CXX supports -$1])
+AC_LANG_SAVE
+AC_LANG([C++])
+ace_save_CXXFLAGS=$CXXFLAGS
+CXXFLAGS="$CXXFLAGS -$1"
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0])],[VAR=yes],[VAR=no])
+CXXFLAGS=$ace_save_CXXFLAGS
+AC_LANG_RESTORE
+if test $VAR = yes; then
+ AC_MSG_RESULT([yes])
+ $2
+else
+ AC_MSG_RESULT([no])
+ $3
+fi
+AS_VAR_POPDEF([VAR])
+])
diff --git a/ACE/m4/config_h.m4 b/ACE/m4/config_h.m4
new file mode 100644
index 00000000000..fdf10ac94e7
--- /dev/null
+++ b/ACE/m4/config_h.m4
@@ -0,0 +1,1056 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl config_h.m4
+dnl
+dnl ACE M4 include file which contains preprocessor constants
+dnl and other items to be place in the generated ace/config.h
+dnl header.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 2002, 2003 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+dnl Prepare the ace/config.h.in template.
+dnl
+dnl Usage: ACE_PREP_CONFIG_HEADER
+AC_DEFUN([ACE_PREP_CONFIG_HEADER],
+[
+dnl Text to be placed at the top of the `ace/config.h' header.
+AH_TOP([
+#ifndef ACE_CONFIG_H
+#define ACE_CONFIG_H
+
+// ACE configuration header file
+
+
+])
+
+dnl Text to be placed at the bottom of the `ace/config.h' header.
+dnl
+dnl @note Do not remove the "] [" between the words "Local Variables".
+dnl The generated Emacs "Local Variables" block will not contain
+dnl those characters. They are merely interpreted by M4 as two
+dnl concatenated text blocks. This is necessary to prevent
+dnl Emacs from inadvertently applying the "Local Variables"
+dnl block being placed in the generated "config.h" header to
+dnl this Autoconf/M4 file.
+AH_BOTTOM([
+
+
+#endif /* ACE_CONFIG_H */
+
+
+// Local] [Variables:
+// mode:C++
+// End:
+
+])
+
+
+dnl ACE currently doesn't use these; however the configure script does
+AH_TEMPLATE([ACE_LACKS_UNBUFFERED_STREAMBUF],[])
+AH_TEMPLATE([ACE_HAS_STDCPP_STL_INCLUDES],[])
+
+AH_TEMPLATE([ACE_HAS_NEW_NO_H],[Platform provides new style C++ <new> header])
+AH_TEMPLATE([ACE_HAS_STDEXCEPT_NO_H],[Platform provides C++ <stdexcept> header])
+
+dnl Deprecated! (or soon to be?)
+AH_TEMPLATE([ACE_HAS_OSF1_GETTIMEOFDAY],
+[timezone* 2nd parameter & no prototype])
+AH_TEMPLATE([ACE_HAS_LYNXOS_SIGNALS],[])
+AH_TEMPLATE([ACE_HAS_TANDEM_SIGNALS],[])
+AH_TEMPLATE([ACE_HAS_IRIX_53_SIGNALS],[])
+
+AH_TEMPLATE([PTHREAD_STACK_MIN],[])
+
+dnl ///////////////////// OSSAMA'S NEW STUFF ////////////////// */
+dnl THIS STUFF WILL REPLACE THE ABOVE OLDER STUFF AND/OR WILL BE MERGED INTO IT
+
+
+dnl /* results from checks for programs */
+dnl /* results from checks for libraries */
+dnl /* results from checks for header files */
+dnl /* results from checks for typedefs */
+dnl /* results from checks for structures */
+dnl /* results from checks for variables */
+dnl /* results from checks for compiler characteristics */
+dnl /* results from checks for library functions */
+dnl /* results from checks for system services */
+
+dnl AIX specific configuration parameters
+AH_TEMPLATE([AIX],[Configure for use on AIX])
+
+dnl FreeBSD specific configuration parameters
+dnl Nothing yet
+
+dnl HP/UX specific configuration parameters
+AH_TEMPLATE([HPUX],[Configure for use on HP-UX])
+AH_TEMPLATE([HPUX_10],[Configure for use on HP-UX 10])
+AH_TEMPLATE([HPUX_11],[Configure for use on HP-UX 11])
+AH_TEMPLATE([ACE_HAS_BROKEN_HPUX_TEMPLATES],
+[Earlier versions of HP/UX C++ are damned...])
+
+dnl Irix specific configuration parameters
+AH_TEMPLATE([IRIX5],[Configure for use on Irix 5])
+AH_TEMPLATE([IRIX6],[Configure for use on Irix 6])
+AH_TEMPLATE([ACE_HAS_IRIX62_THREADS],
+[Platform supports the very odd IRIX 6.2 threads...])
+
+dnl Linux specific configuration parameters
+dnl Nothing yet */
+
+dnl LynxOS specific configuration parameters
+AH_TEMPLATE([__NO_INCLUDE_WARN__],[])
+
+dnl MVS specific configuration parameters
+dnl Nothing yet
+
+dnl NetBSD specific configuration parameters
+dnl Nothing yet
+
+dnl OSF/1 and Digital Unix specific configuration parameters
+AH_TEMPLATE([DEC_CXX],[])
+AH_TEMPLATE([DIGITAL_UNIX],[Configure for use on Digital Unix])
+
+dnl SCO specific configuration parameters
+AH_TEMPLATE([SCO],[])
+
+dnl Tandem specific configuration parameters
+dnl Nothing yet
+
+dnl UnixWare specific configuration parameters
+AH_TEMPLATE([UNIXWARE],[Configure for use on UnixWare])
+AH_TEMPLATE([UNIXWARE_2_0],[])
+AH_TEMPLATE([UNIXWARE_2_1],[])
+AH_TEMPLATE([UNIXWARE_7_1],[])
+AH_TEMPLATE([__IOCTL_VERSIONED__],[])
+
+dnl VXWorks specific configuration parameters
+AH_TEMPLATE([VXWORKS],[Configure for use on VxWorks])
+
+dnl Win32 specific configuration parameters
+AH_TEMPLATE([ACE_WIN32],[Configure for use on Win32])
+
+AH_TEMPLATE([ACE_DISABLE_DEBUG_DLL_CHECK],
+[Define this if you don't want debug version ACE search for debug version
+DLLs first before looking for the DLL names specified.])
+
+AH_TEMPLATE([ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS],
+[Platform/compiler supports Win32 structural exceptions.])
+
+AH_TEMPLATE([ACE_WSOCK_VERSION],
+[A parameter list indicating the version of WinSock (e.g., "1, 1" is
+version 1.1).])
+
+AH_TEMPLATE([ACE_HAS_MFC],[Platform supports Microsoft Foundation Classes])
+
+AH_TEMPLATE([ACE_USES_STATIC_MFC],
+[When linking MFC as a static library is desired])
+
+AH_TEMPLATE([ACE_HAS_CANCEL_IO],
+[Platform supports the Win32 CancelIO() function. (WinNT 4.0 and beyond)])
+
+AH_TEMPLATE([ACE_HAS_WIN32_TRYLOCK],
+[The Win32 platform support TryEnterCriticalSection(). (WinNT 4.0 and
+beyond)])
+
+AH_TEMPLATE([ACE_HAS_WINSOCK2],[The Win32 platform supports WinSock 2.0.])
+
+AH_TEMPLATE([ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL],
+[For Win32: Use Select_Reactor as default implementation of Reactor
+ instead of WFMO_Reactor.])
+
+AH_TEMPLATE([ACE_HAS_DLL],[Build ACE using the frigging PC DLL nonsense...])
+
+AH_TEMPLATE([ACE_HAS_STRICT],[Use the STRICT compilation mode on Win32.])
+
+AH_TEMPLATE([CYGWIN32], [GNU Win32 environement])
+
+
+dnl ACE internals
+AH_TEMPLATE([ACE_DEFAULT_BASE_ADDR],[])
+AH_TEMPLATE([ACE_DEFAULT_BASE_ADDRL],[])
+AH_TEMPLATE([ACE_DEFAULT_CLOSE_ALL_HANDLES],[])
+AH_TEMPLATE([ACE_DEFAULT_MAX_SOCKET_BUFSIZ],[])
+AH_TEMPLATE([ACE_DEFAULT_SELECT_REACTOR_SIZE],[The default number of handles the select()-based reactor should handle])
+AH_TEMPLATE([ACE_MALLOC_ALIGN],[])
+AH_TEMPLATE([ACE_MAP_PRIVATE],[])
+AH_TEMPLATE([ACE_THR_PRI_FIFO_DEF],[])
+AH_TEMPLATE([ACE_TIMER_SKEW],[])
+AH_TEMPLATE([ACE_USE_RCSID],[Enable embedding of global RCS ID strings into compiled object file])
+AH_TEMPLATE([IP_ADD_MEMBERSHIP],[])
+AH_TEMPLATE([IP_DROP_MEMBERSHIP],[])
+
+AH_TEMPLATE([ACE_LOFF_T_TYPEDEF],[typedef for ACE_LOFF_T])
+
+AH_TEMPLATE([__ACE_INLINE__],[Enable ACE inlining])
+
+AH_TEMPLATE([ACE_NO_INLINE],[Explicitly disable ACE inlining])
+
+AH_TEMPLATE([ACE_COMPILE_TIMEPROBES],[Enable ACE_Timeprobes])
+
+AH_TEMPLATE([ACE_HAS_GNU_REPO],
+[Enable use of GNU template repositories. GNU C++ w/repo patch
+and EGCS only])
+
+AH_TEMPLATE([ACE_HAS_AIO_CALLS],[Platform supports Asynchronous IO calls])
+
+AH_TEMPLATE([ACE_HAS_ALT_CUSERID],
+[Use ACE's alternate cuserid() implementation since a system
+cuserid() may not exist, or it is not desirable to use it. The
+implementation requires ACE_LACKS_PWD_FUNCTIONS to be undefined and
+that the geteuid() system call exists.])
+
+AH_TEMPLATE([ACE_DEFAULT_THREAD_KEYS],
+[Number of TSS keys, with ACE_HAS_TSS_EMULATION _only_. Defaults to 64.])
+
+AH_TEMPLATE([ACE_THREADS_DONT_INHERIT_LOG_MSG],
+[Specify this if you don't want threads to inherit parent thread's
+ACE_Log_Msg properties.])
+
+AH_TEMPLATE([ACE_HAS_PRIOCNTL],[OS has priocntl (2)])
+
+AH_TEMPLATE([ACE_HAS_RLIMIT_RESOURCE_ENUM],
+[Platform has enum instead of int for first argument to ::{get,set}rlimit ().
+The value of this macro is the enum definition, e.g.,
+enum __rlimit_resource, for Linux glibc 2.0.])
+
+AH_TEMPLATE([ACE_HAS_RUSAGE_WHO_ENUM],
+[Platform has enum instead of int for first argument to ::getrusage (). The
+value of this macro is the enum definition, e.g., enum __rusage_who, for
+Linux glibc 2.0.])
+
+AH_TEMPLATE([ACE_HAS_STDARG_THR_DEST],
+[Platform has void (*)(...) prototype for pthread_key_create()
+destructor (e.g., LynxOS).])
+
+AH_TEMPLATE([ACE_HAS_STL_MAP_CONFLICT],
+[Used when users want to compile ACE with STL and STL map class
+conflicts with <net/if.h> map struct.])
+
+AH_TEMPLATE([ACE_HAS_STL_QUEUE_CONFLICT],
+[Used when users want to compile ACE with STL and STL queue class
+conflicts with <netinet/in.h> queue struct.])
+
+AH_TEMPLATE([ACE_HAS_4_4BSD_SENDMSG_RECVMSG],
+[Platform has BSD 4.4 sendmsg()/recvmsg() APIs.])
+
+AH_TEMPLATE([ACE_HAS_P_READ_WRITE],
+[Platform has pread() and pwrite() support.])
+
+AH_TEMPLATE([ACE_HAS_AIX_BROKEN_SOCKET_HEADER],
+[Platform, such as AIX4, needs to wrap #include of sys/socket.h with
+#undef/#define of __cplusplus.
+])
+
+AH_TEMPLATE([ACE_HAS_AIX_HI_RES_TIMER],
+[Platform has AIX4 ::read_real_time()])
+
+AH_TEMPLATE([ACE_HAS_ALLOCA],[Compiler/platform supports alloca().])
+
+AH_TEMPLATE([ACE_HAS_ALLOCA_H],[Compiler/platform has <alloca.h>])
+
+AH_TEMPLATE([ACE_HAS_AUTOMATIC_INIT_FINI],
+[Compiler/platform correctly calls init()/fini() for shared libraries.])
+
+AH_TEMPLATE([ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR],
+[Compiler handles explicit calling of template destructor correctly.])
+
+AH_TEMPLATE([ACE_EXPLICIT_TEMPLATE_DESTRUCTOR_TAKES_ARGS],
+[Compiler requires template args when explicitly calling template destructor.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_MAP_FAILED],
+[Platform doesn't cast MAP_FAILED to a (void *).])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_NAMESPACES],
+[Compiler/platform doesn't support namespaces (or the support is not
+fully implemented.)])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS],
+[Compiler can't handle const char * as rvalue in conditional operator.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_CONVERSIONS],
+[Compiler can't handle calls like foo->operator T *()])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_CTIME],
+[Compiler/platform uses macro for ctime (e.g., MVS)])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_DGRAM_SENDV],
+[Platform sendv() does not work properly with datagrams, i.e. it
+fails when the iovec size is IOV_MAX.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_MSG_H],
+[Platform headers don't support <msg.h> prototypes])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_MMAP_H],
+[HP/UX does not wrap the mmap(2) header files with extern "C".])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_NESTED_TEMPLATES],
+[MSVC has trouble with defining STL containers for nested structs and
+classes.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_NON_BLOCKING_CONNECTS],
+[Platform has a bug with non-blocking connects (e.g., WinNT 4.0)])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_POSIX_TIME],
+[Platform defines struct timespec in <sys/timers.h>])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_R_ROUTINES],
+[Platform defines ctime_r, asctime_r, rand_r and getpwnam_r as macros])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_RANDR],
+[OS/compiler's header files are inconsistent with libC definition of
+rand_r().])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_SAP_ANY],
+[Compiler can't handle the static ACE_Addr::sap_any construct.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_T_ERROR],
+[Compiler/platform has the wrong prototype for t_error(), i.e.,
+t_error(char *) rather than t_error(const char *).])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_TIMESPEC_MEMBERS],
+[Platform defines struct timespec members as ts_sec and ts_nsec
+instead of tv_sec and tv_nsec. This is highly non-portable.
+Currently only FreeBSD 2.1.x uses it.])
+
+AH_TEMPLATE([ACE_HAS_BSTRING],
+[Platform has <bstring.h> (which contains bzero() prototype)])
+
+AH_TEMPLATE([ACE_HAS_CHARPTR_DL],
+[OS/platform uses char * for dlopen/dlsym args, rather than const char *.])
+
+AH_TEMPLATE([ACE_HAS_CHARPTR_SOCKOPT],
+[OS/platform uses char * for sockopt, rather than const char *])
+
+AH_TEMPLATE([ACE_HAS_CHARPTR_SPRINTF],
+[sprintf() returns char * rather than int (e.g., SunOS 4.x)])
+
+AH_TEMPLATE([ACE_HAS_CONFLICTING_XTI_MACROS],
+[OS header files have some problems with XTI (HP/UX 11).])
+
+AH_TEMPLATE([ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES],
+[Prototypes for both signal() and struct sigaction are consistent.])
+
+AH_TEMPLATE([ACE_HAS_CONST_CHAR_SWAB],
+[Platform has swab(const char*, char*, ssize_t) variant.])
+
+AH_TEMPLATE([ACE_HAS_CPLUSPLUS_HEADERS],
+[Compiler/platform has correctly prototyped header files.])
+
+AH_TEMPLATE([ACE_HAS_DIRENT],
+[Platform supports operations on directories via struct dirent,
+readdir_r, etc.])
+
+AH_TEMPLATE([ACE_HAS_DLFCN_H_BROKEN_EXTERN_C],
+[For platforms, e.g., RedHat 4.2/Linux 2.0.30/Alpha, that don't
+declare dl* functions as extern "C" in dlfcn.h.])
+
+AH_TEMPLATE([ACE_HAS_EXCEPTIONS],[Compiler supports C++ exception handling.])
+
+AH_TEMPLATE([ACE_HAS_FL],[Platform has Fast-Light (FL) toolkit installed.])
+
+AH_TEMPLATE([ACE_HAS_GETPAGESIZE],
+[Platform supports getpagesize() call (otherwise, ACE_PAGE_SIZE must
+be defined, except on Win32).])
+
+AH_TEMPLATE([ACE_HAS_GNU_CSTRING_H],
+[Denotes that GNU has cstring.h as standard which redefines memchr()])
+
+AH_TEMPLATE([ACE_HAS_INTRINSIC_INTERLOCKED],
+[Platform supports the intrinsic interlocked optimizations.])
+
+AH_TEMPLATE([ACE_HAS_GPERF],
+[The GPERF utility is compiled for this platform])
+
+AH_TEMPLATE([ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT],
+[Optimize ACE_Handle_Set::count_bits for select() operations (common case)])
+
+AH_TEMPLATE([ACE_HAS_LSEEK64],
+[Platform supports lseek64(). This should not be defined if
+ ACE_HAS_LLSEEK is defined.])
+
+AH_TEMPLATE([ACE_HAS_LLSEEK],
+[Platform supports llseek(). This should not be defined if
+ ACE_HAS_LSEEK64 is defined.])
+
+AH_TEMPLATE([ACE_HAS_HI_RES_TIMER],
+[Compiler/platform supports SunOS high resolution timers])
+
+AH_TEMPLATE([ACE_HAS_INLINED_OSCALLS],[
+Inline all the static class OS methods to remove call overhead
+Note: This gets defined by OS.h if __ACE_INLINE__ is defined])
+
+AH_TEMPLATE([ACE_HAS_IP_MULTICAST],[Platform supports IP multicast])
+
+AH_TEMPLATE([ACE_HAS_IPV6],[Platform supports IPv6])
+AH_TEMPLATE([ACE_USES_IPV4_IPV6_MIGRATION],
+[Enable IPv6 support on platforms that don't have IPv6 turned on by default])
+
+AH_TEMPLATE([ACE_HAS_NEW_NOTHROW],
+[Compiler supports new (std::nothrow)])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_SWAB],
+[Platform has swab(char*, char*, ssize_t) variant.])
+
+AH_TEMPLATE([ACE_HAS_NONSTATIC_OBJECT_MANAGER],
+[Causes the ACE_Object_Manager instance to be created in
+ main (int, char *[]), instead of as a static (global) instance.])
+
+AH_TEMPLATE([ACE_HAS_THR_KEYDELETE],
+[Platform supports thr_keydelete (e.g,. UNIXWARE)])
+
+AH_TEMPLATE([ACE_HAS_THR_MINSTACK],
+[Platform calls thr_minstack() rather than thr_min_stack() (e.g., Tandem).])
+
+AH_TEMPLATE([ACE_HAS_LIMITED_RUSAGE_T],
+[The rusage_t structure has only two fields.])
+
+AH_TEMPLATE([ACE_HAS_BIG_FD_SET],
+[Compiler/platform has "big" fd_set, i.e. large number of bits set
+ in fd_set passed back from select().])
+
+AH_TEMPLATE([ACE_HAS_LONG_MAP_FAILED],
+[Platform defines MAP_FAILED as a long constant.])
+
+AH_TEMPLATE([ACE_HAS_MALLOC_STATS], [Enabled malloc statistics collection.])
+
+AH_TEMPLATE([ACE_USES_OLD_IOSTREAMS],
+[Some files, such as ace/streams.h, want to include new style C++
+ stream headers. These headers are iomanip, ios, iostream, istream,
+ ostream, fstream and streambuf. If _all_ of these headers aren't
+ available, then assume that only iostream.h and fstream.h are
+ available.])
+
+AH_TEMPLATE([ACE_HAS_MSG],[Platform supports recvmsg and sendmsg])
+
+AH_TEMPLATE([ACE_HAS_MT_SAFE_MKTIME],
+[Platform supports MT safe mktime() call (do any of them?)])
+
+AH_TEMPLATE([ACE_HAS_MT_SAFE_SOCKETS],
+[Sockets may be called in multi-threaded programs])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_GETBY],
+[Platform uses non-const char * in calls to gethostbyaddr,
+ gethostbyname, getservbyname])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_MSGSND],
+[Platform has a non-const parameter to msgsnd() (e.g., SCO).])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_READV],
+[Platform omits const qualifier from iovec parameter in readv() prototype.])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_SELECT_TIMEVAL],
+[Platform's select() uses non-const timeval* (only found on Linux
+ right now)])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_SENDMSG],
+[Platform omits const qualifier from msghdr parameter in sendmsg()
+ prototype.])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_SETRLIMIT],
+[Platform omits const qualifier from rlimit parameter in setrlimit()
+ prototype.])
+
+AH_TEMPLATE([ACE_HAS_NONCONST_WRITEV],
+[Platform omits const qualifier from iovec parameter in writev() prototype.])
+
+AH_TEMPLATE([ACE_HAS_OLD_MALLOC],
+[Compiler/platform uses old malloc()/free() prototypes (ugh)])
+
+AH_TEMPLATE([ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R],
+[Uses ctime_r & asctime_r with only two parameters vs. three.])
+
+AH_TEMPLATE([ACE_HAS_ONLY_SCHED_OTHER],
+[Platform, e.g., Solaris 2.5, only supports SCHED_OTHER POSIX
+ scheduling policy.])
+
+AH_TEMPLATE([ACE_HAS_OPTIMIZED_MESSAGE_QUEUE],
+[Use the semaphore implementation of ACE_Message_Queue rather than
+ the emulated condition variable (NT and VxWorks).])
+
+AH_TEMPLATE([ACE_HAS_OSF_TIMOD_H],
+[Platform supports the OSF TLI timod STREAMS module])
+
+AH_TEMPLATE([ACE_HAS_POLL],[Platform contains <poll.h>])
+
+AH_TEMPLATE([ACE_HAS_POSITION_INDEPENDENT_POINTERS],
+[Platform supports "position-independent" features provided by
+ ACE_Based_Pointer<>.])
+
+AH_TEMPLATE([ACE_HAS_POSIX_GETPWNAM_R],
+[Platform supports POSIX getpwnam_r() function])
+
+AH_TEMPLATE([ACE_HAS_POSIX_NONBLOCK],
+[Platform supports POSIX O_NONBLOCK semantics])
+
+AH_TEMPLATE([ACE_HAS_POSIX_REALTIME_SIGNALS],
+[Platform supports POSIX realtime signals])
+
+AH_TEMPLATE([ACE_HAS_POSIX_SEM],
+[Platform supports POSIX real-time semaphores (e.g., VxWorks and
+ Solaris)])
+
+AH_TEMPLATE([ACE_HAS_POSIX_SEM_TIMEOUT],
+[Platform supports timed POSIX semaphore acquisitions (sem_timedwait()).])
+
+AH_TEMPLATE([ACE_DISABLE_POSIX_SEM_TIMEOUT_EMULATION],
+[Do not include emulation for timed semaphore acquisitions.])
+
+AH_TEMPLATE([ACE_HAS_POSIX_TIME],
+[Platform supports the POSIX struct timespec type])
+
+AH_TEMPLATE([ACE_HAS_PROC_FS],
+[Platform supports the /proc file system and defines tid_t
+ in <sys/procfs.h>])
+
+AH_TEMPLATE([ACE_HAS_PRUSAGE_T],[Platform supports the prusage_t struct])
+
+AH_TEMPLATE([ACE_HAS_PTHREADS_UNIX98_EXT],
+[Platform has the UNIX98 extensions to Pthreads (rwlocks)])
+
+AH_TEMPLATE([ACE_HAS_PTHREAD_PROCESS_ENUM],
+[pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
+ PTHREAD_PROCESS_SHARED values])
+
+AH_TEMPLATE([ACE_HAS_PURIFY],[Purify'ing. Defined on command line.])
+
+AH_TEMPLATE([ACE_HAS_QUANTIFY],[Quantify'ing. Defined on command line.])
+
+AH_TEMPLATE([ACE_HAS_RECURSIVE_MUTEXES],
+[Mutexes are inherently recursive (e.g., Win32) ])
+
+AH_TEMPLATE([ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS],
+[Platform will recurse infinitely on thread exits from TSS cleanup
+ routines (e.g., AIX)])
+
+AH_TEMPLATE([ACE_HAS_SIGACTION_CONSTP2],
+[Platform's sigaction() function takes const sigaction* as 2nd parameter])
+
+AH_TEMPLATE([ACE_HAS_REENTRANT_FUNCTIONS],
+[Platform supports reentrant functions (i.e., all the POSIX *_r
+ functions).])
+
+AH_TEMPLATE([ACE_HAS_X86_STAT_MACROS],
+[Solaris for intel uses macros for fstat() and stat(), these are
+ wrappers for _fxstat() and _xstat() uses of the macros. Causes
+ compile and runtime problems.])
+
+AH_TEMPLATE([ACE_HAS_XPG4_MULTIBYTE_CHAR],
+[Platform has support for multi-byte character support compliant
+ with the XPG4 Worldwide Portability Interface wide-character
+ classification.])
+
+AH_TEMPLATE([ACE_LACKS_AUTO_MMAP_REPLACEMENT],
+[No system support for replacing any previous mappings.])
+
+AH_TEMPLATE([ACE_LACKS_AUTO_PTR],
+[Platform lacks support for the standard C++ auto_ptr class])
+
+AH_TEMPLATE([ACE_AUTO_PTR_LACKS_RESET],
+[Compiler/platform standard C++ auto_ptr implementation lacks
+ reset() method])
+
+AH_TEMPLATE([ACE_LACKS_READDIR_R],[Platform lacks readdir_r()])
+
+AH_TEMPLATE([ACE_LACKS_INLINE_FUNCTIONS],
+[Platform can't handle "inline" keyword correctly.])
+
+AH_TEMPLATE([ACE_LACKS_IOSTREAM_TOTALLY],
+[iostreams are not supported adequately on the given platform.])
+
+AH_TEMPLATE([ACE_LACKS_NETDB_REENTRANT_FUNCTIONS],
+[Platform does not support reentrant netdb functions
+ (getprotobyname_r, getprotobynumber_r, gethostbyaddr_r,
+ gethostbyname_r, getservbyname_r).])
+
+AH_TEMPLATE([ACE_HAS_REGEX],
+[Platform supports the POSIX regular expression library])
+
+AH_TEMPLATE([ACE_HAS_SEMUN],
+[Compiler/platform defines a union semun for SysV shared memory ])
+
+AH_TEMPLATE([ACE_HAS_SHM_OPEN],[Platform has shm_open()])
+AH_TEMPLATE([ACE_SHM_OPEN_REQUIRES_ONE_SLASH],[shm_open() requires a leading slash in name])
+
+AH_TEMPLATE([ACE_HAS_SIGISMEMBER_BUG],
+[Platform has bug with sigismember() (HP/UX 11).])
+
+AH_TEMPLATE([ACE_HAS_SIG_MACROS],
+[Platform/compiler has macros for sig{empty,fill,add,del}set (e.g.,
+ SCO and FreeBSD)])
+
+AH_TEMPLATE([ACE_HAS_SIGNAL_OBJECT_AND_WAIT],
+[Platform supports the Win32 SignalObjectAndWait() function (WinNT
+ 4.0 and beyond).])
+
+AH_TEMPLATE([ACE_HAS_SIG_C_FUNC],
+[Compiler requires extern "C" functions for signals.])
+
+AH_TEMPLATE([ACE_HAS_SIZET_SOCKET_LEN],
+[OS/compiler uses size_t * rather than int * for socket lengths])
+
+AH_TEMPLATE([ACE_HAS_SOCKADDR_MSG_NAME],
+[Platform requires (struct sockaddr *) for msg_name field of
+ struct msghdr.])
+
+AH_TEMPLATE([ACE_HAS_SPARCWORKS_401_SIGNALS],
+[Compiler has brain-damaged SPARCwork SunOS 4.x signal prototype...])
+
+AH_TEMPLATE([ACE_HAS_THR_YIELD],[Platform has thr_yield()])
+
+AH_TEMPLATE([ACE_HAS_STANDARD_CPP_LIBRARY],
+[Platform/compiler supports Standard C++ Library])
+
+AH_TEMPLATE([ACE_HAS_STRBUF_T],[Compiler/platform supports struct strbuf])
+
+AH_TEMPLATE([ACE_HAS_STREAMS],[Platform supports STREAMS])
+
+AH_TEMPLATE([ACE_HAS_STREAM_PIPES],[Platform supports STREAM pipes])
+
+AH_TEMPLATE([ACE_LACKS_STROPTS_H],[Platform lacks stropts.h])
+
+AH_TEMPLATE([ACE_HAS_STRING_CLASS],
+[Platform/Compiler supports a String class (e.g., GNU or Win32).])
+
+AH_TEMPLATE([ACE_HAS_STRINGS],
+[Platform has <strings.h> (which contains bzero() prototype)])
+
+AH_TEMPLATE([ACE_HAS_STRUCT_NETDB_DATA],
+[Compiler/platform has strange hostent API for socket *_r() calls])
+
+AH_TEMPLATE([ACE_HAS_SUNOS4_SIGNAL_T],
+[Compiler has horrible SunOS 4.x signal handlers...])
+
+AH_TEMPLATE([ACE_HAS_SVR4_DYNAMIC_LINKING],
+[Compiler/platform supports SVR4 dynamic linking semantics])
+
+AH_TEMPLATE([ACE_HAS_SVR4_GETTIMEOFDAY],
+[Compiler/platform supports SVR4 gettimeofday() prototype but
+ doesn't have a prototype])
+
+AH_TEMPLATE([ACE_HAS_SVR4_SIGNAL_T],
+[Compiler/platform supports SVR4 signal typedef.])
+
+AH_TEMPLATE([ACE_HAS_SVR4_TLI],
+[Compiler/platform supports SVR4 TLI (in particular, T_GETNAME stuff).])
+
+AH_TEMPLATE([ACE_HAS_SYSCALL_GETRUSAGE],
+[HP/UX has an undefined syscall for GETRUSAGE.])
+
+AH_TEMPLATE([ACE_HAS_SYSINFO],
+[Platform supports system configuration information.])
+
+AH_TEMPLATE([ACE_HAS_SYSV_IPC],
+[Platform supports System V IPC (most versions of UNIX, but not Win32)])
+
+AH_TEMPLATE([ACE_HAS_SYS_ERRLIST],
+[Platform/compiler supports _sys_errlist symbol])
+
+AH_TEMPLATE([ACE_HAS_SYS_SIGLIST],
+[Compiler/platform supports _sys_siglist array])
+
+AH_TEMPLATE([ACE_HAS_SYS_XTI_H],[Platform provides <sys/xti.h> header])
+
+AH_TEMPLATE([ACE_HAS_TEMPLATE_SPECIALIZATION],
+[Compiler implements template specialization])
+
+AH_TEMPLATE([ACE_HAS_STD_TEMPLATE_SPECIALIZATION],
+[Compiler supports standard C++ template specializations
+ (e.g. "template <>" syntax.)])
+
+AH_TEMPLATE([ACE_HAS_STD_TEMPLATE_CLASS_MEMBER_SPECIALIZATION],
+[Compiler supports standard C++ template class member specializations])
+
+AH_TEMPLATE([ACE_HAS_TEMPLATE_TYPEDEFS],
+[Compiler implements templates that support typedefs inside of
+ classes used as formal arguments to a template class.])
+
+AH_TEMPLATE([ACE_HAS_THREADS],[Platform supports threads.])
+
+AH_TEMPLATE([ACE_HAS_THREAD_SAFE_ACCEPT],
+[Platform allows multiple threads to call accept() on the same port
+ (e.g., WinNT).])
+
+AH_TEMPLATE([ACE_HAS_THREAD_SELF],
+[Platform has thread_self() rather than pthread_self() (e.g.,
+ DCETHREADS and AIX)])
+
+AH_TEMPLATE([ACE_HAS_THREAD_SPECIFIC_STORAGE],
+[Compiler/platform has thread-specific storage])
+
+AH_TEMPLATE([ACE_HAS_THR_C_DEST],
+[The pthread_keycreate() routine *must* take extern C functions.])
+
+AH_TEMPLATE([ACE_HAS_THR_C_FUNC],
+[The pthread_create() routine *must* take extern C functions.])
+
+AH_TEMPLATE([ACE_HAS_TIMEZONE_GETTIMEOFDAY],
+[Platform/compiler supports timezone * as second parameter to
+ gettimeofday() and has a prototype.])
+
+AH_TEMPLATE([ACE_HAS_TIMOD_H],
+[Platform supports TLI timod STREAMS module])
+
+AH_TEMPLATE([ACE_HAS_TIUSER_H],[Platform supports TLI tiuser header])
+
+AH_TEMPLATE([ACE_HAS_TIUSER_H_BROKEN_EXTERN_C],
+[Platform does not protect <tiuser.h> with extern "C"])
+
+AH_TEMPLATE([ACE_HAS_TLI],
+[Platform supports TLI. Also see ACE_TLI_TCP_DEVICE.])
+
+AH_TEMPLATE([ACE_HAS_TLI_PROTOTYPES],
+[Platform provides TLI function prototypes])
+
+AH_TEMPLATE([ACE_HAS_TSS_EMULATION],
+[ACE provides TSS emulation. See also ACE_DEFAULT_THREAD_KEYS.])
+
+AH_TEMPLATE([ACE_HAS_UCONTEXT_T],
+[Platform supports ucontext_t (which is used in the extended signal API).])
+
+AH_TEMPLATE([ACE_HAS_UNIXWARE_SVR4_SIGNAL_T],
+[Has inconsistent SVR4 signal stuff, but not the same as the other
+ platforms])
+
+AH_TEMPLATE([ACE_HAS_WCHAR],[Platform/compiler supports wchar_t])
+AH_TEMPLATE([ACE_USES_WCHAR],[ACE is built to use wide characters internally])
+
+AH_TEMPLATE([ACE_HAS_TYPENAME_KEYWORD],
+[Compiler supports the C++ typename keyword])
+
+AH_TEMPLATE([ACE_HAS_VERBOSE_NOTSUP],
+[Prints out console message in ACE_NOTSUP. Useful for tracking down
+ origin of ACE_NOTSUP.])
+
+AH_TEMPLATE([ACE_HAS_VOIDPTR_GETTIMEOFDAY],
+[Platform/compiler supports void * as second parameter to
+ gettimeofday() and has a prototype.])
+
+AH_TEMPLATE([ACE_HAS_VOIDPTR_MMAP],[Platform requires void * for mmap().])
+
+AH_TEMPLATE([ACE_HAS_VOIDPTR_SOCKOPT],
+[OS/compiler uses void * arg 4 setsockopt() rather than const char *])
+
+AH_TEMPLATE([ACE_HAS_XLI],[Platform has the XLI version of TLI])
+
+AH_TEMPLATE([ACE_HAS_XT],[Platform has Xt Intrinsics Toolkit])
+
+AH_TEMPLATE([ACE_LACKS_MOTIF],
+[Platform does not have Motif X toolkit available])
+
+AH_TEMPLATE([ACE_HAS_XTI],
+[Platform has XTI (X/Open-standardized superset of TLI). Implies
+ ACE_HAS_TLI but uses a different header file.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_IOSTREAM],
+[Platform can not build ace/IOStream{,_T}.cpp. This does not
+ necessarily mean that the platform does not support iostreams.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_CODECS],
+[Do not compile support for the "Codecs" ACE features.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_OTHER],
+[Do not compile support for the "other" ACE features, such as CORBA
+ handling, name services, and QoS.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_SVCCONF],
+[Do not compile support for the ACE Service Configurator.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_TOKEN],
+[Do not compile support for the ACE Token feature.])
+
+AH_TEMPLATE([ACE_LACKS_ACE_UUID],
+[Do not compile support for the ACE UUID feature.])
+
+AH_TEMPLATE([ACE_LACKS_COND_T],
+[Platform lacks condition variables (e.g., Win32 and VxWorks)])
+
+AH_TEMPLATE([ACE_LACKS_COND_TIMEDWAIT_RESET],
+[pthread_cond_timedwait does *not* reset the time argument when
+ the lock is acquired.])
+
+AH_TEMPLATE([ACE_LACKS_CONDATTR_PSHARED],
+[Platform has no implementation of pthread_condattr_setpshared(), even
+ though it supports pthreads!])
+
+AH_TEMPLATE([ACE_LACKS_CONST_STRBUF_PTR],
+[Platform uses struct strbuf * rather than const struct strbuf *
+ (e.g., HP/UX 10.x)])
+
+AH_TEMPLATE([ACE_LACKS_CONST_TIMESPEC_PTR],
+[Platform forgot const in cond_timewait (e.g., HP/UX).])
+
+AH_TEMPLATE([ACE_LACKS_EXEC],
+[Platform lacks the exec() family of system calls (e.g., Win32,
+ VxWorks, Chorus)])
+
+AH_TEMPLATE([ACE_LACKS_FILELOCKS],[Platform lacks file locking mechanism])
+
+AH_TEMPLATE([ACE_LACKS_FLOATING_POINT],
+[Platform does not support floating point operations])
+
+AH_TEMPLATE([ACE_LACKS_GETSERVBYNAME],
+[Platforms lacks getservbyname() (e.g., VxWorks and Chorus).])
+
+AH_TEMPLATE([ACE_LACKS_IOSTREAM_FX],
+[iostream header does not declare ipfx (), opfx (), etc.])
+
+AH_TEMPLATE([ACE_LACKS_LINEBUFFERED_STREAMBUF],
+[Platform lacks streambuf "linebuffered ()".])
+
+AH_TEMPLATE([ACE_LACKS_LONGLONG_T],
+[Compiler/platform does not support the unsigned long long datatype.])
+
+AH_TEMPLATE([ACE_LACKS_U_LONGLONG_T],
+[Platform does not have u_longlong_t typedef])
+
+AH_TEMPLATE([ACE_LACKS_MMAP],
+[The platform doesn't have mmap(2) (e.g., SCO UNIX).])
+
+AH_TEMPLATE([ACE_LACKS_MODE_MASKS],
+[Platform/compiler doesn't have open() mode masks.])
+
+AH_TEMPLATE([ACE_LACKS_MSG_ACCRIGHTS],
+[Platform defines ACE_HAS_MSG, but lacks msg_accrights{len}.])
+
+AH_TEMPLATE([ACE_HAS_BROKEN_NETBSD_MSYNC],
+[Platform doesn't support "sync" third argument to msync (?)])
+
+AH_TEMPLATE([ACE_LACKS_MUTEXATTR_PSHARED],
+[Platform lacks pthread_mutexattr_setpshared().])
+
+AH_TEMPLATE([ACE_LACKS_NULL_PTHREAD_STATUS],
+[OS requires non-null status pointer for pthread_join ()])
+
+AH_TEMPLATE([ACE_HAS_MUTEX_TIMEOUTS],
+[Compiler supports timed mutex acquisitions (e.g. pthread_mutex_timedlock()).])
+
+AH_TEMPLATE([ACE_LACKS_NAMED_POSIX_SEM],
+[Platform lacks named POSIX semaphores (e.g., Chorus)])
+
+AH_TEMPLATE([ACE_LACKS_STRPTIME],
+[Platform lacks native strptime() implementation.])
+
+AH_TEMPLATE([ACE_LACKS_RLIMIT],
+[Platform/compiler lacks {get,set}rlimit() function (e.g., VxWorks,
+ Chorus, and SCO UNIX)])
+
+AH_TEMPLATE([ACE_LACKS_RWLOCKATTR_PSHARED],
+[Platform lacks pthread_rwlockattr_setpshared().])
+
+AH_TEMPLATE([ACE_LACKS_PLACEMENT_OPERATOR_NEW],
+[Compiler doesn't support placement operator new(size_t, void *).])
+
+AH_TEMPLATE([ACE_LACKS_PLACEMENT_OPERATOR_DELETE],
+[Compiler doesn't support placement operator delete(void *, void *).])
+
+AH_TEMPLATE([ACE_LACKS_PRAGMA_ONCE],
+[Compiler complains about use of obsolete "pragma once"])
+
+AH_TEMPLATE([ACE_LACKS_PTHREAD_CANCEL],[Platform lacks pthread_cancel()])
+
+AH_TEMPLATE([ACE_LACKS_PWD_FUNCTIONS],
+[Platform lacks, getpwnam(), etc.])
+
+AH_TEMPLATE([ACE_LACKS_PWD_REENTRANT_FUNCTIONS],
+[Platform lacks getpwnam_r() methods (e.g., SGI 6.2).])
+
+AH_TEMPLATE([ACE_LACKS_RWLOCK_T],[Platform lacks readers/writer locks.])
+
+AH_TEMPLATE([ACE_LACKS_SEMBUF_T],
+[Platform lacks struct sembuf (e.g., Win32 and VxWorks)])
+
+AH_TEMPLATE([ACE_LACKS_SETDETACH],
+[Platform lacks pthread_attr_setdetachstate() (e.g., HP/UX 10.x)])
+
+AH_TEMPLATE([ACE_LACKS_SETSCHED],
+[Platform lacks pthread_attr_setsched() (e.g. MVS)])
+
+AH_TEMPLATE([ACE_LACKS_SIGACTION],
+[Platform lacks struct sigaction (e.g., Win32 and Chorus)])
+
+AH_TEMPLATE([ACE_LACKS_SIGNED_CHAR],
+[Platform lacks "signed char" type (broken!)])
+
+AH_TEMPLATE([ACE_LACKS_SIGSET],
+[Platform lacks signal sets (e.g., Chorus and Win32)])
+
+AH_TEMPLATE([ACE_LACKS_STRUCT_DIR],
+[Platform lacks dirent structure.])
+
+AH_TEMPLATE([ACE_LACKS_SYS_MSG_H],
+[Platform lacks sys/msg.h (e.g., Chorus and VxWorks)])
+
+AH_TEMPLATE([ACE_LACKS_SYSV_MSQ_PROTOS],
+[Platform lacks SYSV message queue prototypes])
+
+AH_TEMPLATE([ACE_LACKS_SI_ADDR],
+[Platform lacks the si_addr field of siginfo_t (e.g., VxWorks and
+ HP/UX 10.x)])
+
+AH_TEMPLATE([ACE_LACKS_SYSV_SHMEM],
+[Platform lacks System V shared memory (e.g., Win32 and VxWorks)])
+
+AH_TEMPLATE([ACE_LACKS_SOCKET_BUFSIZ],
+[Platform doesn't support SO_SNDBUF/SO_RCVBUF (used in TAO)])
+
+AH_TEMPLATE([ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES],
+[Compiler doesn't support static data member templates])
+
+AH_TEMPLATE([ACE_LACKS_STRRECVFD],[Platform doesn't define struct strrecvfd.])
+
+AH_TEMPLATE([ACE_LACKS_T_ERRNO],[Header files lack t_errno for TLI])
+
+AH_TEMPLATE([ACE_LACKS_TCP_NODELAY],[OS does not support TCP_NODELAY])
+
+AH_TEMPLATE([ACE_LACKS_THREAD_PROCESS_SCOPING],
+[Platform lacks pthread_attr_setscope()])
+
+AH_TEMPLATE([ACE_LACKS_TIMESPEC_T],
+[Platform does not define timepec_t as a typedef for struct timespec.])
+
+AH_TEMPLATE([ACE_LACKS_STRTOK_R_PROTOTYPE],
+[Platform/compiler lacks the strtok_r() prototype])
+
+AH_TEMPLATE([ACE_LACKS_LSEEK64_PROTOTYPE],
+[Platform/compiler lacks the lseek64() prototype. This should not
+ be defined if ACE_LACKS_LLSEEK_PROTOTYPE is defined.])
+
+AH_TEMPLATE([ACE_LACKS_LLSEEK_PROTOTYPE],
+[Platform/compiler lacks the llseek() prototype. This should not
+ be defined if ACE_LACKS_LSEEK64_PROTOTYPE is defined.])
+
+AH_TEMPLATE([ACE_LACKS_PREAD_PROTOTYPE],
+[Platform/compiler lacks the pread() and pwrite() prototypes])
+
+AH_TEMPLATE([ACE_LACKS_CHAR_RIGHT_SHIFTS],
+[Compiler does not have any istream operator>> for chars, u_chars, or
+ signed chars.])
+
+AH_TEMPLATE([ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS],
+[Compiler does not have operator>> (istream &, u_char *) or
+ operator>> (istream &, signed char *)])
+
+AH_TEMPLATE([ACE_LACKS_NUMERIC_LIMITS],[Platform lacks std::numeric_limits<>])
+
+AH_TEMPLATE([ACE_LACKS_UNIX_DOMAIN_SOCKETS],
+[ACE platform has no UNIX domain sockets])
+
+AH_TEMPLATE([ACE_LACKS_UNIX_SIGNALS],
+[Platform lacks full signal support (e.g., Win32 and Chorus).])
+
+AH_TEMPLATE([ACE_LACKS_UTSNAME_T],
+[Platform lacks struct utsname (e.g., Win32 and VxWorks)])
+
+AH_TEMPLATE([ACE_LACKS_WILDCARD_BIND],
+[The bind() call will not select the port if it's 0.])
+
+AH_TEMPLATE([ACE_MAIN],
+[Renames "main (int, char *[])", for platforms such as g++/VxWorks
+ that don't allow main. Requires the use of
+ ACE_HAS_NONSTATIC_OBJECT_MANAGER.])
+
+AH_TEMPLATE([ACE_MT_SAFE],[Compile using multi-thread libraries])
+
+AH_TEMPLATE([ACE_NDEBUG],[Turns off debugging features])
+
+AH_TEMPLATE([ACE_NEEDS_DEV_IO_CONVERSION],
+[Necessary with some compilers to pass ACE_TTY_IO as parameter to
+ DEV_Connector.])
+
+AH_TEMPLATE([ACE_NEEDS_HUGE_THREAD_STACKSIZE],
+[Required by platforms with small default stacks.])
+
+AH_TEMPLATE([ACE_NEEDS_LWP_PRIO_SET],
+[OS has LWPs, and when the priority of a bound thread is set, then
+ the LWP priority must be set also.])
+
+AH_TEMPLATE([ACE_NEEDS_REGEXPR_H],
+[Platform needs regexpr.h for regular expression support])
+
+AH_TEMPLATE([ACE_NEEDS_SCHED_H],
+[Platform needs to #include <sched.h> to get thread scheduling defs.])
+
+AH_TEMPLATE([ACE_NEW_THROWS_EXCEPTIONS],
+[Compiler's 'new' throws exception on failure (ANSI C++ behavior).])
+
+AH_TEMPLATE([ACE_NLOGGING],
+[Turns off the LM_DEBUG and LM_ERROR logging macros...])
+
+AH_TEMPLATE([ACE_NTRACE],[Turns off the tracing feature.])
+
+AH_TEMPLATE([ACE_PAGE_SIZE],
+[Defines the page size of the system (not used on Win32 or with
+ ACE_HAS_GETPAGESIZE).])
+
+AH_TEMPLATE([ACE_REDEFINES_XTI_FUNCTIONS],
+[Platform redefines the t_... names (UnixWare)])
+
+AH_TEMPLATE([ACE_SELECT_USES_INT],
+[Platform uses int for select() rather than fd_set])
+
+AH_TEMPLATE([ACE_TEMPLATES_REQUIRE_PRAGMA],
+[Compiler's template mechanism must use a pragma. This is used for
+ AIX's C++ compiler.])
+
+AH_TEMPLATE([ACE_TEMPLATES_REQUIRE_SOURCE],
+[Compiler's template mechanim must see source code (i.e., .cpp
+ files). This is used for GNU G++.])
+
+AH_TEMPLATE([ACE_HAS_ICMP_SUPPORT],
+[Defined to 1 if platform supports ICMP over raw sockets])
+
+AH_TEMPLATE([ACE_NEEDS_FUNC_DEFINITIONS],
+[Compiler requires a definition for a "hidden" function, e.g., a
+ private, unimplemented copy constructor or assignment operator.
+ The SGI C++ compiler needs this, in template classes, with
+ ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA.])
+
+AH_TEMPLATE([ACE_TLI_TCP_DEVICE],
+[Device the platform uses for TCP on TLI. Only needed if not
+ /dev/tcp.])
+
+AH_TEMPLATE([ACE_USE_POLL],
+[The OS/platform supports the poll() event demultiplexor])
+
+AH_TEMPLATE([ACE_HAS_EVENT_POLL],[Platform (Linux) supports event poll
+ interface.])
+
+AH_TEMPLATE([ACE_HAS_DEV_POLL],[Platform supports /dev/poll character
+ device.])
+
+AH_TEMPLATE([ACE_USES_ASM_SYMBOL_IN_DLSYM],
+[Platform uses assembly symbols instead of C symbols in dlsym()])
+
+AH_TEMPLATE([ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB],
+[Platform has its standard C++ library in the namespace std.])
+
+dnl DSO/DLL export macros.
+AH_TEMPLATE([ACE_HAS_CUSTOM_EXPORT_MACROS],
+[Platform defines custom DSO/DLL symbol export macros.])
+
+AH_TEMPLATE([ACE_Proper_Export_Flag],
+[Flag that denotes the symbol should be exported from the DSO/DLL.])
+
+AH_TEMPLATE([ACE_Proper_Import_Flag],
+[Flag that denotes the symbol should be imported from the DSO/DLL.])
+
+dnl ACE_EXPORT_SINGLETON_DECLARATION(T)
+dnl ACE_EXPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+dnl ACE_IMPORT_SINGLETON_DECLARATION(T)
+dnl ACE_IMPORT_SINGLETON_DECLARE(SINGLETON_TYPE, CLASS, LOCK)
+
+AH_TEMPLATE([HAVE_RESTARTABLE_SYSCALLS],[])
+
+]) dnl End ACE_PREP_CONFIG_HEADER
diff --git a/ACE/m4/pkg.m4 b/ACE/m4/pkg.m4
new file mode 100644
index 00000000000..cbb46dbf832
--- /dev/null
+++ b/ACE/m4/pkg.m4
@@ -0,0 +1,156 @@
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+ if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ else
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_failed=yes])
+ fi
+else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [$4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
diff --git a/ACE/m4/platform.m4 b/ACE/m4/platform.m4
new file mode 100644
index 00000000000..cdab216495d
--- /dev/null
+++ b/ACE/m4/platform.m4
@@ -0,0 +1,473 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl platform.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl that set/determine which known platform specific C++ macros
+dnl to define.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2000, 2002, 2003 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+dnl Check for thread related libraries and compiler flags
+dnl Usage: ACE_SET_PLATFORM_MACROS
+AC_DEFUN([ACE_SET_PLATFORM_MACROS],
+[
+dnl Begin ACE_SET_PLATFORM_MACROS
+
+dnl At some point the below platform specific settings should be
+dnl automated as much as possible! We set things manually just to get
+dnl things going with the auto{conf,make}/libtool integration into the
+dnl ACE source tree.
+
+dnl Platform specific flags
+case "$host" in
+ *aix3*)
+ AC_DEFINE([AIX])
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ ;;
+ *aix4.1*)
+ AC_DEFINE([AIX])
+ dnl Use BSD 4.4 socket definitions for pre-AIX 4.2. The _BSD
+ dnl setting also controls the data type used for waitpid(),
+ dnl wait(), and wait3().
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD=44"
+ dnl pre-AIX 4.3 requires _BSD_INCLUDES
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_INCLUDES"
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ AC_DEFINE([ACE_HAS_AIX_BROKEN_SOCKET_HEADER])
+ ;;
+ *aix4.2*)
+ AC_DEFINE([AIX])
+ dnl pre-AIX 4.3 requires _BSD_INCLUDES
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_INCLUDES"
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+dnl AC_DEFINE([ACE_HAS_AIX_BROKEN_SOCKET_HEADER])
+ AC_DEFINE([ACE_TLI_TCP_DEVICE], ["/dev/xti/tcp"])
+ ;;
+ *aix*)
+ AC_DEFINE([AIX])
+ ;;
+dnl /* Cray specific configuration parameters */
+dnl /*
+dnl * The following predefined macros are used within ACE ifdefs.
+dnl * These are defined when using the Cray compilers. _CRAYMPP
+dnl * is defined, for example, if you are running on a Cray T3E
+dnl * massively parallel machine. Moreover, in the case of the T3E,
+dnl * _CRAYT3E will be defined. This is used to determine the
+dnl * ACE_SIZEOF defines for primitive types.
+dnl *
+dnl * _UNICOS is defined as either the major version of UNICOS being run,
+dnl * e.g. 9 or 10 on the vector machines (e.g. C90, T90, J90, YMP, ...)
+dnl * or the major+minor+level UNICOS/mk version, e.g. 2.0.3 => 203,
+dnl * being run on an MPP machine.
+dnl *
+dnl * Summary:
+dnl *
+dnl * _CRAYMPP (defined only if running on MPP machine, e.g. T3E, UNICOS/mk)
+dnl * _CRAYT3E (defined specifically if compiling on a Cray T3E)
+dnl * _UNICOS (defined if running UNICOS or UNICOS/mk)
+dnl *
+dnl * Tested on UNICOS 10.0.0.2, UNICOS/mk 2.0.3.10
+dnl *
+dnl * Contributed by Doug Anderson <doug "at" clark.net>
+dnl */
+ t3e-cray-unicosmk*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_CRAYMPP -D_CRAYT3E -D_UNICOS"
+ ;;
+ t3e-cray*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_CRAYT3E -D_UNICOS"
+ ;;
+ *cray-unicos*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_UNICOS"
+ ;;
+ *hpux9*)
+ AC_DEFINE([HPUX])
+ ;;
+ *hpux10*)
+ AC_DEFINE([HPUX])
+ AC_DEFINE([HPUX_10])
+ dnl _HPUX_SOURCE : Enable HP-UX specific features in platform headers
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_HPUX_SOURCE"
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ AC_DEFINE([ACE_TLI_TCP_DEVICE], ["/dev/inet_cots"])
+ ;;
+ *hpux11*)
+ AC_DEFINE([HPUX])
+ AC_DEFINE([HPUX_11])
+ AC_EGREP_CPP([ACE_ON_64BIT_HP],
+ [
+#ifdef __LP64__
+ ACE_ON_64BIT_HP
+#endif
+ ],
+ [
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x0000001100000000)])
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDRL], [((char *) 0x0000001100000000)])
+ ],
+ [
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ ])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ ;;
+ *irix5.2*)
+ AC_DEFINE([IRIX5])
+ ;;
+ *irix5.3*)
+ AC_DEFINE([IRIX5])
+ if test "$GXX" = no; then
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_BSD_TYPES"
+ fi
+ ;;
+ *irix6*)
+ AC_DEFINE([IRIX6])
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) (1024U * 1024 * 1024))])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ dnl _MODERN_C_ : Enable modern features in SGI C++ compiler
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_SGI_MP_SOURCE -D_MODERN_C_"
+
+ case "$host" in
+ *irix6.2*)
+ dnl Recent versions of IRIX do not appear to require this macro.
+ if test "$ace_user_enable_threads" = yes; then
+ AC_DEFINE([ACE_HAS_IRIX62_THREADS])
+ fi
+ ;;
+ esac
+ ;;
+ *linux*)
+ AC_DEFINE([ACE_DEFAULT_MAX_SOCKET_BUFSIZ], [65535])
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ AC_DEFINE([ACE_HAS_BIG_FD_SET]) dnl FIXME: We need a test for this!
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ dnl Does this box have NPTL?
+ NPTL=`getconf GNU_LIBPTHREAD_VERSION | $AWK '{print [$][1]}' -`
+ if test "$NPTL" != NPTL; then
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -DACE_LACKS_LINUX_NPTL"
+ fi
+ ;;
+ *lynxos*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_THREADS_CALLS"
+ AC_DEFINE([__NO_INCLUDE_WARN__])
+ AC_DEFINE([ACE_MALLOC_ALIGN], [8])
+ AC_DEFINE([ACE_MAP_PRIVATE], [ACE_MAP_SHARED])
+ AC_DEFINE([ACE_USE_RCSID], [0])
+ AC_DEFINE([ACE_HAS_LYNXOS_SIGNALS])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ ;;
+ *mvs*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_ALL_SOURCE"
+ ;;
+ *osf3.2*)
+ AC_EGREP_CPP([ACE_DEC_CXX],
+ [
+#if defined(__DECCXX)
+ ACE_DEC_CXX
+#endif
+ ],
+ [
+ AC_DEFINE([DEC_CXX])
+ ],)
+ ;;
+ *osf4.0*)
+dnl We need to add checks for g++, DEC C++ and Rational C++
+ AC_EGREP_CPP([ACE_DEC_CXX],
+ [
+#if defined(__DECCXX)
+ ACE_DEC_CXX
+#endif
+ ],
+ [
+ AC_DEFINE([DEC_CXX])
+ ],)
+dnl Check for _POSIX_C_SOURCE macro
+ AC_EGREP_CPP([ACE_ON_DEC_WITH_POS_SRC],
+ [
+ /* Include unistd.h to define _POSIX_C_SOURCE. */
+#ifndef ACE_LACKS_UNISTD_H
+# include <unistd.h>
+#endif
+
+#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 199506L)
+ ACE_ON_DEC_WITH_POS_SRC
+#endif
+ ],
+ [
+ AC_DEFINE([DIGITAL_UNIX])
+ ],)
+ AC_DEFINE([ACE_DEFAULT_BASE_ADDR], [((char *) 0x80000000)])
+ AC_DEFINE([ACE_NEEDS_HUGE_THREAD_STACKSIZE], [(1024 * 1024)])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ ;;
+ *sco4.2*)
+ AC_DEFINE([SCO])
+ AC_DEFINE([ACE_DEFAULT_CLOSE_ALL_HANDLES], [0])
+ ;;
+ *sco5*)
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_SVID3"
+ AC_DEFINE([SCO])
+ AC_DEFINE([ACE_DEFAULT_CLOSE_ALL_HANDLES], [0])
+ AC_DEFINE([ACE_HAS_BIG_FD_SET]) dnl FIXME: We need a test for this!
+ ;;
+ *sunos4*)
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ ;;
+ *solaris2.4*)
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ AC_DEFINE([ACE_NEEDS_LWP_PRIO_SET])
+ ;;
+ *solaris2.5*)
+ AC_DEFINE([ACE_MALLOC_ALIGN], [8])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ AC_DEFINE([ACE_NEEDS_LWP_PRIO_SET])
+ ;;
+ *solaris2.6*)
+ AC_DEFINE([ACE_MALLOC_ALIGN], [8])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ AC_DEFINE([ACE_NEEDS_LWP_PRIO_SET])
+ ;;
+ *solaris2.7*)
+ AC_DEFINE([ACE_MALLOC_ALIGN], [8])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ AC_DEFINE([ACE_NEEDS_LWP_PRIO_SET])
+ ;;
+ *86*solaris*)
+ AC_DEFINE([ACE_HAS_X86_STAT_MACROS])
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ AC_DEFINE([ACE_NEEDS_LWP_PRIO_SET])
+ ;;
+ *tandem*)
+ AC_DEFINE([ACE_TIMER_SKEW], [(1000 * 10)])
+ ;;
+ *unixware2.0*)
+ AC_DEFINE([UNIXWARE])
+ AC_DEFINE([UNIXWARE_2_0])
+ ;;
+ *unixware2.1*)
+ AC_DEFINE([UNIXWARE])
+ AC_DEFINE([UNIXWARE_2_1])
+ ;;
+ *UnixWare7.1*)
+ AC_DEFINE([UNIXWARE])
+ AC_DEFINE([UNIXWARE_7_1])
+ AC_DEFINE([__IOCTL_VERSIONED__])
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_REENTRANT"
+ ;;
+ *vxworks*)
+ AC_DEFINE([VXWORKS])
+ AC_DEFINE([ACE_MAIN], [ace_main])
+ AC_DEFINE([ACE_DEFAULT_MAX_SOCKET_BUFSIZ], [32768])
+ dnl need ACE_HAS_TSS_EMULATION for ACE_DEFAULT_THREAD_KEYS!
+ AC_EGREP_CPP([ACE_TSS_EMULATION],
+ [
+#if defined (ACE_HAS_TSS_EMULATION)
+ ACE_TSS_EMULATION
+#endif
+ ], [AC_DEFINE([ACE_DEFAULT_THREAD_KEYS], [16])],[])
+ AC_DEFINE([ACE_THR_PRI_FIFO_DEF], [101])
+ AC_DEFINE([ACE_USE_RCSID], [0])
+ ;;
+ *cygwin32*)
+ AC_DEFINE([CYGWIN32])
+ ;;
+ *win32*)
+ AC_DEFINE([ACE_WIN32])
+ AC_DEFINE([ACE_UINT64_FORMAT_SPECIFIER], ["%I64u"])
+dnl AC_DEFINE(ACE_USE_SELECT_REACTOR_FOR_REACTOR_IMPL)
+ if test "$ace_u_long_long_typedef_set" != yes; then
+ ACE_UINT64="unsigned __int64"
+ ace_u_long_long_typedef_set=yes
+ fi dnl "$ace_u_long_long_typedef_set" != yes
+ ;;
+ *qnx* | *nto* | *neutrino*)
+ dnl These should be defined on the command line, not in config.h.
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_QNX_SOURCE -D_POSIX_C_SOURCE=199506"
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_NAME_MAX=14" # Max bytes in a
+ # filename
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -D_POSIX_PATH_MAX=256" # Num. bytes in
+ # pathname (excl. NULL)
+ case "$host" in
+ i[[3456]]86*)
+ if test "$GXX" = yes; then
+ # Neutrino defines memcpy as a macro on x86, which then
+ # hoses the ACE_OS::memcpy() method. Undefining
+ # __OPTIMIZE__ prevents this from happening.
+ ACE_CPPFLAGS="$ACE_CPPFLAGS -U__OPTIMIZE__"
+ fi
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+esac
+
+ACE_FUNC_IOCTL_ARGTYPES
+ACE_CHECK_HAS_NONCONST_FD_ISSET
+ACE_CHECK_FORMAT_SPECIFIERS
+ACE_CHECK_LACKS_PERFECT_MULTICAST_FILTERING
+
+dnl End ACE_SET_PLATFORM_MACROS
+])
+
+
+
+# ACE_CHECK_FORMAT_SPECIFIERS
+#
+# Override default *printf format specifiers for size_t, ssize_t, ACE_INT64,
+# and ACE_UINT64
+#
+# FIXME: Is it possible to write a portable feature test, or is checking
+# the the target OS / target CPU the best we can do?
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_FORMAT_SPECIFIERS],
+[dnl
+AH_TEMPLATE([ACE_SIZE_T_FORMAT_SPECIFIER],
+[Define to the *printf format specifier (e.g. "%u") for size_t])dnl
+AH_TEMPLATE([ACE_SSIZE_T_FORMAT_SPECIFIER],
+[Define to the *printf format specifier (e.g. "%d") for ssize_t])dnl
+AH_TEMPLATE([ACE_INT64_FORMAT_SPECIFIER],
+[Define to the *printf format specifier (e.g. "%lld") for ACE_INT64])dnl
+AH_TEMPLATE([ACE_UINT64_FORMAT_SPECIFIER],
+[Define to the *printf format specifier (e.g. "%llu") for ACE_UINT64])dnl
+
+case "$host_os" in
+darwin*)
+ AC_DEFINE([ACE_SIZE_T_FORMAT_SPECIFIER], ["%lu"])
+ ;;
+
+linux*)
+ case "$host_cpu" in
+ alpha|ia64|x86_64)
+ AC_DEFINE([ACE_SIZE_T_FORMAT_SPECIFIER], ["%lu"])
+ AC_DEFINE([ACE_SSIZE_T_FORMAT_SPECIFIER], ["%ld"])
+ AC_DEFINE([ACE_UINT64_FORMAT_SPECIFIER], ["%lu"])
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+
+netbsd*)
+ case "$host_cpu" in
+ x86_64)
+ AC_DEFINE([ACE_SIZE_T_FORMAT_SPECIFIER], ["%lu"])
+ AC_DEFINE([ACE_SSIZE_T_FORMAT_SPECIFIER], ["%ld"])
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+
+*)
+ ;;
+esac])
+
+
+# ACE_CHECK_PERFECT_MULTICAST_FILTERING
+#
+# Checks whether platform lacks "perfect" multicast filtering.
+#
+# FIXME: Is it possible to write a portable feature test, or is checking
+# the the target OS the best we can do?
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_LACKS_PERFECT_MULTICAST_FILTERING],
+[AC_CACHE_CHECK([whether platform lacks perfect multicast filtering],
+ [ace_cv_lacks_perfect_multicast_filtering],
+ [case "$host_os" in
+ darwin* | freebsd* | netbsd* | openbsd* | qnx*)
+ ace_cv_lacks_perfect_multicast_filtering=yes ;;
+ *)
+ ace_cv_lacks_perfect_multicast_filtering=no ;;
+ esac])
+
+if test $ace_cv_lacks_perfect_multicast_filtering = yes; then
+ AC_DEFINE([ACE_LACKS_PERFECT_MULTICAST_FILTERING], 1,
+[Define to 1 if platform lacks IGMPv3 "perfect" filtering of multicast
+datagrams at the socket level. If defined, ACE_SOCK_Dgram_Mcast will bind
+the first joined multicast group to the socket, and all future joins on that
+socket will fail with an error.])
+fi
+])
+
+
+# ACE_FUNC_IOCTL_ARGTYPES
+#
+# Determine the correct type to be passed to ioctl's second argument and
+# define the types in ACE_IOCTL_TYPE_ARG2.
+#
+# FIXME: Should we support ioctl's third argument as well...?
+#
+# FIXME: Is it possible to write a portable feature test, or is checking
+# the the target OS the best we can do?
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_FUNC_IOCTL_ARGTYPES],
+[AC_CACHE_CHECK([types of arguments for ioctl()],
+ [ace_cv_func_ioctl_arg2],
+ [case "$host_os" in
+ darwin* | freebsd* | netbsd* | openbsd*)
+ ace_cv_func_ioctl_arg2="unsigned long" ;;
+ *)
+ ace_cv_func_ioctl_arg2="int" ;;
+ esac])
+
+AC_DEFINE_UNQUOTED(ACE_IOCTL_TYPE_ARG2, $ace_cv_func_ioctl_arg2,
+ [Define to the type of arg 2 for `ioctl'.])
+])
+
+
+# ACE_VAR_TIMEZONE
+#
+# Checks whether platform has global "timezone" variable.
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_VAR_TIMEZONE],
+[AC_CACHE_CHECK([for timezone variable],
+ [ace_cv_var_timezone],
+ [AC_TRY_LINK([#include <time.h>],
+ [return (int) timezone(0, 0);],
+ [ace_cv_var_timezone=no],
+ [AC_TRY_LINK([#include <time.h>],
+ [return (int) timezone;],
+ [ace_cv_var_timezone=yes],
+ [ace_cv_var_timezone=no])])
+ ])
+if test "$ace_cv_var_timezone" = yes; then
+ AC_DEFINE([ACE_HAS_TIMEZONE], 1,
+ [Define to 1 if platform has global timezone variable])
+fi
+])
+
+
+# ACE_HAS_NONCONST_FD_ISSET
+#
+# Checks if system has a nonconst FD_ISSET macro.
+#
+#---------------------------------------------------------------------------
+AC_DEFUN([ACE_CHECK_HAS_NONCONST_FD_ISSET],
+[dnl
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([#include <sys/time.h>],
+ [
+ //const fd_set* temp = new fd_set();
+ //FD_ISSET(0, const_cast< fd_set* >( temp ) );
+ const fd_set* temp = new fd_set();
+ FD_ISSET(0, temp );
+ ])
+ ],[],[AC_DEFINE([ACE_HAS_NONCONST_FD_ISSET], 1,
+ [Define to 1 if system has nonconst FD_ISSET() macro.])]
+ )
+])
diff --git a/ACE/m4/subsets.m4 b/ACE/m4/subsets.m4
new file mode 100644
index 00000000000..afcd471b25f
--- /dev/null
+++ b/ACE/m4/subsets.m4
@@ -0,0 +1,770 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl subsets.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl that set/determine which ACE subsets to build.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2001 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl Check for thread related libraries and compiler flags
+dnl Usage: ACE_CHECK_SUBSETS
+AC_DEFUN([ACE_CHECK_SUBSETS],
+[
+dnl Begin ACE_CHECK_SUBSETS
+
+dnl Assume all subsets will be built, including the full ACE library.
+dnl If any of the components is explicitly enabled or disabled by the user
+dnl then do NOT build the full ACE library.
+AC_ARG_ENABLE([lib-all],
+ AS_HELP_STRING([--enable-lib-all],[build all ACE components [[no]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_lib_all=yes
+ ;;
+ no)
+ ace_user_enable_lib_all=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-all])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_lib_all=no
+ ])
+
+AC_ARG_ENABLE([lib-full],
+ AS_HELP_STRING([--enable-lib-full],[build the full ACE library [[yes]]]),
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_lib_full=yes
+ ;;
+ no)
+ ace_user_enable_lib_full=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-full])
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_lib_full=yes
+ ])
+
+AC_ARG_ENABLE([lib-os],
+ AS_HELP_STRING([--enable-lib-os],[build ACE_OS library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_OS
+ ;;
+ no)
+ ace_user_enable_lib_os=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-os])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-codecs],
+ AS_HELP_STRING([--enable-lib-codecs],[build ACE_Codecs library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_CODECS
+ ;;
+ no)
+ ace_user_enable_lib_codecs=no
+ AC_DEFINE([ACE_LACKS_ACE_CODECS])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-codecs])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-connection],
+ AS_HELP_STRING([--enable-lib-connection],[build ACE_Connection library ]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_CONNECTION
+ ;;
+ no)
+ ace_user_enable_lib_connection=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-connection])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-demux],
+ AS_HELP_STRING([--enable-lib-demux],[build ACE_Demux library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_DEMUX
+ ;;
+ no)
+ ace_user_enable_lib_demux=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-demux])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-filecache],
+ AS_HELP_STRING([--enable-lib-filecache],[build ACE_Filecache library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_FILECACHE
+ ;;
+ no)
+ ace_user_enable_lib_filecache=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-filecache])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-ipc],
+ AS_HELP_STRING([--enable-lib-ipc],[build ACE_IPC library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_IPC
+ ;;
+ no)
+ ace_user_enable_lib_ipc=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-ipc])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-logging],
+ AS_HELP_STRING([--enable-lib-logging],[build ACE_Logging library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_LOGGING
+ ;;
+ no)
+ ace_user_enable_lib_logging=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-logging])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-memory],
+ AS_HELP_STRING([--enable-lib-memory],[build ACE_Memory library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_MEMORY
+ ;;
+ no)
+ ace_user_enable_lib_memory=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-memory])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-metrics],
+ AS_HELP_STRING([--enable-lib-metrics],[build ACE_Metrics library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_METRICS
+ ;;
+ no)
+ ace_user_enable_lib_metrics=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-metrics])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-sockets],
+ AS_HELP_STRING([--enable-lib-sockets],[build ACE_Sockets library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_SOCKETS
+ ;;
+ no)
+ ace_user_enable_lib_sockets=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-sockets])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-streams],
+ AS_HELP_STRING([--enable-lib-streams],[build ACE_Streams library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_STREAMS
+ ;;
+ no)
+ ace_user_enable_lib_streams=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-streams])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-svcconf],
+ AS_HELP_STRING([--enable-lib-svcconf],[build ACE_Svcconf library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_SVCCONF
+ ;;
+ no)
+ ace_user_enable_lib_svcconf=no
+ AC_DEFINE([ACE_LACKS_ACE_SVCCONF])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-svcconf])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-threads],
+ AS_HELP_STRING([--enable-lib-threads],[build ACE_Threads library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_THREADS
+ ;;
+ no)
+ ace_user_enable_lib_threads=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-threads])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-timer],
+ AS_HELP_STRING([--enable-lib-timer],[build ACE_Timer library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_TIMER
+ ;;
+ no)
+ ace_user_enable_lib_timer=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-timer])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-token],
+ AS_HELP_STRING([--enable-lib-token],[build ACE_Token library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_TOKEN
+ ;;
+ no)
+ ace_user_enable_lib_token=no
+ AC_DEFINE([ACE_LACKS_ACE_TOKEN])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-token])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-utils],
+ AS_HELP_STRING([--enable-lib-utils],[build ACE_Utils library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_UTILS
+ ;;
+ no)
+ ace_user_enable_lib_utils=no
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-utils])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-uuid],
+ AS_HELP_STRING([--enable-lib-uuid],[build ACE_UUID library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_UUID
+ ;;
+ no)
+ ace_user_enable_lib_uuid=no
+ AC_DEFINE([ACE_LACKS_ACE_UUID])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-uuid])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+AC_ARG_ENABLE([lib-other],
+ AS_HELP_STRING([--enable-lib-other],[build ACE_Other library]),
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CREATE_LIBACE_OTHER
+ ;;
+ no)
+ ace_user_enable_lib_other=no
+ AC_DEFINE([ACE_LACKS_ACE_OTHER])
+ ;;
+ *)
+ AC_MSG_ERROR([bad value ${enableval} for --enable-lib-other])
+ ;;
+ esac
+
+ dnl Disable full ACE library build
+ ace_user_enable_lib_full=no
+ ],)
+
+
+dnl If no ACE subsets were explicitly enabled or disabled then build
+dnl all of them.
+if test $ace_user_enable_lib_all = yes; then
+
+ ACE_CREATE_ALL_COMPONENTS
+
+elif test $ace_user_enable_lib_all = no; then
+
+ ACE_DISABLE_ALL_COMPONENTS
+
+fi
+
+if test $ace_user_enable_lib_full = no &&
+ test $ace_user_enable_lib_os = no &&
+ test $ace_user_enable_lib_codecs = no &&
+ test $ace_user_enable_lib_connection = no &&
+ test $ace_user_enable_lib_demux = no &&
+ test $ace_user_enable_lib_filecache = no &&
+ test $ace_user_enable_lib_ipc = no &&
+ test $ace_user_enable_lib_logging = no &&
+ test $ace_user_enable_lib_memory = no &&
+ test $ace_user_enable_lib_metrics = no &&
+ test $ace_user_enable_lib_threads = no &&
+ test $ace_user_enable_lib_sockets = no &&
+ test $ace_user_enable_lib_svcconf = no &&
+ test $ace_user_enable_lib_streams = no &&
+ test $ace_user_enable_lib_timer = no &&
+ test $ace_user_enable_lib_token = no &&
+ test $ace_user_enable_lib_utils = no &&
+ test $ace_user_enable_lib_uuid = no &&
+ test $ace_user_enable_lib_other = no; then
+
+ dnl If we get here then no ACE libraries will be built!
+ AC_MSG_ERROR([No ACE components will be built. Specify which components to build.])
+
+fi dnl No components will be built!
+
+dnl Set which ACE subsets to build
+AM_CONDITIONAL(BUILD_OS_FILES,
+ test X$ace_user_enable_lib_os = Xyes)
+
+AM_CONDITIONAL(BUILD_CODECS_FILES,
+ test X$ace_user_enable_lib_codecs = Xyes)
+
+AM_CONDITIONAL(BUILD_CONNECTION_FILES,
+ test X$ace_user_enable_lib_connection = Xyes)
+
+AM_CONDITIONAL(BUILD_DEMUX_FILES,
+ test X$ace_user_enable_lib_demux = Xyes)
+
+AM_CONDITIONAL(BUILD_FILECACHE_FILES,
+ test X$ace_user_enable_lib_filecache = Xyes)
+
+AM_CONDITIONAL(BUILD_IPC_FILES,
+ test X$ace_user_enable_lib_ipc = Xyes)
+
+AM_CONDITIONAL(BUILD_LOGGING_FILES,
+ test X$ace_user_enable_lib_logging = Xyes)
+
+AM_CONDITIONAL(BUILD_MEMORY_FILES,
+ test X$ace_user_enable_lib_memory = Xyes)
+
+AM_CONDITIONAL(BUILD_METRICS_FILES,
+ test X$ace_user_enable_lib_metrics = Xyes)
+
+AM_CONDITIONAL(BUILD_SOCKETS_FILES,
+ test X$ace_user_enable_lib_sockets = Xyes)
+
+AM_CONDITIONAL(BUILD_STREAMS_FILES,
+ test X$ace_user_enable_lib_streams = Xyes)
+
+AM_CONDITIONAL(BUILD_SVCCONF_FILES,
+ test X$ace_user_enable_lib_svcconf = Xyes)
+
+AM_CONDITIONAL(BUILD_THREADS_FILES,
+ test X$ace_user_enable_lib_threads = Xyes)
+
+AM_CONDITIONAL(BUILD_TIMER_FILES,
+ test X$ace_user_enable_lib_timer = Xyes)
+
+AM_CONDITIONAL(BUILD_TOKEN_FILES,
+ test X$ace_user_enable_lib_token = Xyes)
+
+AM_CONDITIONAL(BUILD_UTILS_FILES,
+ test X$ace_user_enable_lib_utils = Xyes)
+
+AM_CONDITIONAL(BUILD_UUID_FILES,
+ test X$ace_user_enable_lib_uuid = Xyes)
+
+AM_CONDITIONAL(BUILD_OTHER_FILES,
+ test X$ace_user_enable_lib_other = Xyes)
+
+AM_CONDITIONAL(BUILD_FULL_LIBRARY,
+ test X$ace_user_enable_lib_full = Xyes)
+
+dnl End ACE_CHECK_SUBSETS
+])
+
+dnl Set the component dependencies for the libACE_OS library
+dnl Usage: ACE_CREATE_LIBACE_OS
+AC_DEFUN([ACE_CREATE_LIBACE_OS],
+[
+ ace_user_enable_lib_os=yes
+])
+
+dnl Set the component dependencies for the libACE_Utils library
+dnl Usage: ACE_CREATE_LIBACE_UTILS
+AC_DEFUN([ACE_CREATE_LIBACE_UTILS],
+[
+ ace_user_enable_lib_utils=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_UUID library
+dnl Usage: ACE_CREATE_LIBACE_UUID
+AC_DEFUN([ACE_CREATE_LIBACE_UUID],
+[
+ ace_user_enable_lib_uuid=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Filecache library
+dnl Usage: ACE_CREATE_LIBACE_FILECACHE
+AC_DEFUN([ACE_CREATE_LIBACE_FILECACHE],
+[
+ ace_user_enable_lib_filecache=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Logging library
+dnl Usage: ACE_CREATE_LIBACE_LOGGING
+AC_DEFUN([ACE_CREATE_LIBACE_LOGGING],
+[
+ ace_user_enable_lib_logging=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Metrics library
+dnl Usage: ACE_CREATE_LIBACE_METRICS
+AC_DEFUN([ACE_CREATE_LIBACE_METRICS],
+[
+ ace_user_enable_lib_metrics=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Threads library
+dnl Usage: ACE_CREATE_LIBACE_THREADS
+AC_DEFUN([ACE_CREATE_LIBACE_THREADS],
+[
+ ace_user_enable_lib_threads=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Demux library
+dnl Usage: ACE_CREATE_LIBACE_DEMUX
+AC_DEFUN([ACE_CREATE_LIBACE_DEMUX],
+[
+ ace_user_enable_lib_demux=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_THREADS
+])
+
+dnl Set the component dependencies for the libACE_Connection library
+dnl Usage: ACE_CREATE_LIBACE_CONNECTION
+AC_DEFUN([ACE_CREATE_LIBACE_CONNECTION],
+[
+ ace_user_enable_lib_connection=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_THREADS
+ ACE_CREATE_LIBACE_DEMUX
+])
+
+dnl Set the component dependencies for the libACE_Sockets library
+dnl Usage: ACE_CREATE_LIBACE_SOCKETS
+AC_DEFUN([ACE_CREATE_LIBACE_SOCKETS],
+[
+ ace_user_enable_lib_sockets=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_IPC library
+dnl Usage: ACE_CREATE_LIBACE_IPC
+AC_DEFUN([ACE_CREATE_LIBACE_IPC],
+[
+ ace_user_enable_lib_ipc=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_SOCKETS
+])
+
+dnl Set the component dependencies for the libACE_Svcconf library
+dnl Usage: ACE_CREATE_LIBACE_SVCCONF
+AC_DEFUN([ACE_CREATE_LIBACE_SVCCONF],
+[
+ ace_user_enable_lib_svcconf=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_THREADS
+ ACE_CREATE_LIBACE_DEMUX
+ ACE_CREATE_LIBACE_SOCKETS
+])
+
+dnl Set the component dependencies for the libACE_Streams library
+dnl Usage: ACE_CREATE_LIBACE_STREAMS
+AC_DEFUN([ACE_CREATE_LIBACE_STREAMS],
+[
+ ace_user_enable_lib_streams=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_THREADS
+ ACE_CREATE_LIBACE_DEMUX
+])
+
+dnl Set the component dependencies for the libACE_Memory library
+dnl Usage: ACE_CREATE_LIBACE_MEMORY
+AC_DEFUN([ACE_CREATE_LIBACE_MEMORY],
+[
+ ace_user_enable_lib_memory=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Timer library
+dnl Usage: ACE_CREATE_LIBACE_TIMER
+AC_DEFUN([ACE_CREATE_LIBACE_TIMER],
+[
+ ace_user_enable_lib_timer=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Token library
+dnl Usage: ACE_CREATE_LIBACE_TOKEN
+AC_DEFUN([ACE_CREATE_LIBACE_TOKEN],
+[
+ ace_user_enable_lib_token=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_UTILS
+ ACE_CREATE_LIBACE_LOGGING
+ ACE_CREATE_LIBACE_THREADS
+ ACE_CREATE_LIBACE_DEMUX
+ ACE_CREATE_LIBACE_CONNECTION
+ ACE_CREATE_LIBACE_SOCKETS
+ ACE_CREATE_LIBACE_IPC
+ ACE_CREATE_LIBACE_SVCCONF
+ ACE_CREATE_LIBACE_STREAMS
+ ACE_CREATE_LIBACE_MEMORY
+ dnl ACE_CREATE_LIBACE_OTHER
+])
+
+dnl Set the component dependencies for the libACE_Codecs library
+dnl Usage: ACE_CREATE_LIBACE_CODECS
+AC_DEFUN([ACE_CREATE_LIBACE_CODECS],
+[
+ ace_user_enable_lib_codecs=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+])
+
+dnl Set the component dependencies for the libACE_Other library
+dnl Usage: ACE_CREATE_LIBACE_OTHER
+AC_DEFUN([ACE_CREATE_LIBACE_OTHER],
+[
+ ace_user_enable_lib_other=yes
+
+ dnl Be careful not to go into a circular/recursive loop with these macros!
+ ACE_CREATE_LIBACE_OS
+ ACE_CREATE_LIBACE_UTILS
+ ACE_CREATE_LIBACE_LOGGING
+ ACE_CREATE_LIBACE_THREADS
+ ACE_CREATE_LIBACE_DEMUX
+ ACE_CREATE_LIBACE_CONNECTION
+ ACE_CREATE_LIBACE_SOCKETS
+ ACE_CREATE_LIBACE_IPC
+ ACE_CREATE_LIBACE_SVCCONF
+ ACE_CREATE_LIBACE_STREAMS
+ ACE_CREATE_LIBACE_MEMORY
+ dnl ACE_CREATE_LIBACE_TOKEN
+])
+
+dnl Build all ACE component libraries
+dnl Usage: ACE_CREATE_ALL_COMPONENTS
+AC_DEFUN([ACE_CREATE_ALL_COMPONENTS],
+[
+ ace_user_enable_lib_os=yes
+ ace_user_enable_lib_codecs=yes
+ ace_user_enable_lib_connection=yes
+ ace_user_enable_lib_demux=yes
+ ace_user_enable_lib_filecache=yes
+ ace_user_enable_lib_ipc=yes
+ ace_user_enable_lib_logging=yes
+ ace_user_enable_lib_memory=yes
+ ace_user_enable_lib_metrics=yes
+ ace_user_enable_lib_sockets=yes
+ ace_user_enable_lib_streams=yes
+ ace_user_enable_lib_svcconf=yes
+ ace_user_enable_lib_threads=yes
+ ace_user_enable_lib_timer=yes
+ ace_user_enable_lib_token=yes
+ ace_user_enable_lib_utils=yes
+ ace_user_enable_lib_uuid=yes
+ ace_user_enable_lib_other=yes
+])
+
+dnl Disable all ACE component libraries
+dnl Usage: ACE_CREATE_ALL_COMPONENTS
+AC_DEFUN([ACE_DISABLE_ALL_COMPONENTS],
+[
+ ace_user_enable_lib_os=no
+ ace_user_enable_lib_codecs=no
+ ace_user_enable_lib_connection=no
+ ace_user_enable_lib_demux=no
+ ace_user_enable_lib_filecache=no
+ ace_user_enable_lib_ipc=no
+ ace_user_enable_lib_logging=no
+ ace_user_enable_lib_memory=no
+ ace_user_enable_lib_metrics=no
+ ace_user_enable_lib_sockets=no
+ ace_user_enable_lib_streams=no
+ ace_user_enable_lib_svcconf=no
+ ace_user_enable_lib_threads=no
+ ace_user_enable_lib_timer=no
+ ace_user_enable_lib_token=no
+ ace_user_enable_lib_utils=no
+ ace_user_enable_lib_uuid=no
+ ace_user_enable_lib_other=no
+])
diff --git a/ACE/m4/threads.m4 b/ACE/m4/threads.m4
new file mode 100644
index 00000000000..d6fc759b4c1
--- /dev/null
+++ b/ACE/m4/threads.m4
@@ -0,0 +1,334 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl threads.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl for configuring thread support. This file is to be used
+dnl with the configure script.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2002 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+dnl Make sure thread library exists
+dnl We need to be careful when tests for other thread libraries are
+dnl added that we don't screw up handling of "ace_user_enable_threads"
+dnl Tests should probably be more platform specific later on.
+
+dnl Check for thread related libraries and compiler flags
+dnl Usage: ACE_CHECK_THREADS
+AC_DEFUN([ACE_CHECK_THREADS],
+[
+dnl AC_REQUIRE([AC_PROG_CXX])
+dnl AC_REQUIRE([AC_PROG_CXXCPP])
+dnl AC_LANG([C++])
+dnl AC_REQUIRE([AC_LANG])
+
+ dnl Check if compiler accepts specific flag to enable threads
+ ACE_CACHE_CHECK([if compiler may need a command line thread flag],
+ [ace_cv_feature_may_need_thread_flag],
+ [
+ ace_save_CXXFLAGS="$CXXFLAGS"
+
+ ACE_CHECK_THREAD_FLAGS(
+ [
+ ace_cv_feature_may_need_thread_flag=no
+ ],
+ [
+ ace_cv_feature_may_need_thread_flag=yes
+ ])
+ dnl Reset the flags to a consistent state.
+ dnl This prevents duplicate flags from being added to
+ dnl the C/CXXFLAGS variable.
+ CXXFLAGS="$ace_save_CXXFLAGS"
+ ],
+ [
+ dnl The compiler/platform has no thread support linked in by default
+ dnl so search for a usable compiler flag to enable thread support.
+ dnl If no thread flag is found then the remaining tests should still
+ dnl figure out how to enable thread support via library checks.
+ ACE_SEARCH_THREAD_FLAGS(
+ [mt pthread pthreads mthreads threads Kthread kthread -thread_safe],,)
+ dnl NOTE: "-thread_safe" is correct, not "thread_safe."
+ dnl KAI C++ uses the flag "--thread_safe" which is why
+ dnl "-thread_safe" is passed as the flag to test.
+ ],
+ [
+ dnl Do nothing
+ ])
+
+ dnl Check for UNIX International Threads (ACE calls this STHREADS)
+ dnl This used to check for thr_create(), but AIX has a semi-functional
+ dnl UI Threads capability that includes thr_create(). We don't want to
+ dnl find such a half-hearted UI Threads, so this was changed to look for
+ dnl a UI Threads function that AIX doesn't offer.
+ AS_IF([test "$ace_user_enable_uithreads" = yes],
+ [ AC_MSG_CHECKING([for UNIX International threads capability])
+ AC_SEARCH_LIBS([mutex_lock], [thread],
+ [
+ ace_has_sthreads=yes
+ AC_DEFINE([ACE_HAS_STHREADS], 1,
+ [Define to 1 if platform has UNIX International Threads])
+ ],
+ [
+ ace_has_sthreads=no
+ ])
+ dnl Sometimes thr_create is actually found with explicitly linking against
+ dnl -lthread, so try a more "exotic" function.
+ AC_SEARCH_LIBS([rwlock_destroy], [thread],[],[])
+ AC_MSG_RESULT([$ace_has_sthreads])
+ ],[])
+
+ dnl Check if any thread related preprocessor flags are needed.
+ ACE_CHECK_THREAD_CPPFLAGS
+
+ dnl Check for POSIX threads
+ ace_has_pthreads=no
+ AS_IF([test "$ace_user_enable_pthreads" = yes],
+ [ AC_MSG_CHECKING([for POSIX threads library])
+ ACE_CHECK_POSIX_THREADS(
+ [
+ ace_has_pthreads=yes
+ AC_DEFINE([ACE_HAS_PTHREADS], 1,
+ [Define to 1 if platform has POSIX threads])
+ AC_MSG_RESULT([none required])
+ ],
+ [])
+
+ AS_IF([test "$ace_has_pthreads" != yes],
+ [
+ ace_posix_threads_search_LIBS="$LIBS"
+ for ace_p in pthread pthreads c_r gthreads; do
+ LIBS="-l$ace_p $ace_posix_threads_search_LIBS"
+ ACE_CHECK_POSIX_THREADS(
+ [
+ ace_has_pthreads=yes
+ AC_DEFINE([ACE_HAS_PTHREADS])
+ AC_MSG_RESULT([-l$ace_p])
+ break
+ ],
+ [])
+ done
+
+ AS_IF([test "$ace_has_pthreads" != yes],
+ [
+ AC_MSG_RESULT([no])
+ LIBS="$ace_posix_threads_search_LIBS"
+ ],[])
+ ],
+ [])
+ ],
+ [
+ AC_MSG_NOTICE([Pthreads disabled by user; not checking for it])
+ ])
+
+ dnl If we don't have any thread library, then disable threading altogether!
+ AS_IF([test "$ace_has_pthreads" != yes && test "$ace_has_sthreads" != yes],
+ [
+ ace_user_enable_threads=no
+ ])
+])
+
+dnl This macro will check that the current compiler flags do something
+dnl useful in terms of thread libraries and/or functions.
+dnl Usage: ACE_CHECK_THREAD_FLAGS(ACTION-IF-USABLE [, ACTION-IF-NOT-USABLE]])
+AC_DEFUN([ACE_CHECK_THREAD_FLAGS],
+[
+ ACE_CONVERT_WARNINGS_TO_ERRORS([
+ dnl Check for UI thread support first.
+
+ dnl Because some platforms are brain damaged enough to provide
+ dnl useless thread function stubs, link tests may succeed despite the
+ dnl fact the stubs are no-ops. This forces us to use a run-time test
+ dnl to get around this nuisance by checking the return value of
+ dnl thr_create(). The cross-compiled case will use a link-time
+ dnl test, instead.
+ dnl Furthermore, we need the implementation to be a real one, not
+ dnl a half-hearted attempt such as that provided on AIX 5. So, we
+ dnl make sure it can at least work with a mutex.
+
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <thread.h>
+#if ((THR_BOUND & THR_SUSPEND & THR_DETACHED) != 0)
+# error This is a silly UI Threads implementation.
+#endif
+
+extern "C" void *
+ace_start_func (void *)
+{
+ mutex_t m;
+ mutex_init (&m, USYNC_THREAD, NULL);
+ mutex_lock (&m);
+ mutex_unlock (&m);
+ mutex_destroy (&m);
+ return 0;
+}
+
+int
+main ()
+{
+ thread_t tid = 0;
+
+ return thr_create (0, 0, ace_start_func, 0, 0, &tid);
+}
+ ]])],
+ [$1],
+ [
+ dnl Now check for POSIX thread support.
+ ACE_CHECK_POSIX_THREADS([$1],[$2])
+
+ ],
+ [
+ dnl UI threads cross-compiled case
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <thread.h>
+
+extern "C" void *
+ace_start_func (void *)
+{
+ return 0;
+}
+ ]],
+ [[
+ thread_t tid = 0;
+
+ (void) thr_create (&tid, 0, ace_start_func, 0);
+ ]])],
+ [$1],
+ [$2])
+ ])
+ ])
+])
+
+dnl Check what compiler thread flag may be used, if any, from the given list.
+dnl The flag list is separated by white space.
+dnl Usage: ACE_SEARCH_THREAD_FLAGS(THREAD-FLAG-LIST,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+AC_DEFUN([ACE_SEARCH_THREAD_FLAGS],
+[
+ AC_LANG([C++])
+ AC_REQUIRE([AC_LANG])
+
+ ACE_CACHE_CHECK([for compiler thread flag],
+ [ace_cv_thread_flag_search],
+ [
+ ace_save_CXXFLAGS="$CXXFLAGS"
+
+ for i in $1; do
+ CXXFLAGS="$CXXFLAGS -$i"
+
+ ACE_CHECK_THREAD_FLAGS(
+ [
+ ace_cv_thread_flag_search="-$i"
+
+ dnl A usable flag was found so break out of the loop.
+ break;
+ ],
+ [
+ ace_cv_thread_flag_search=no
+ ])
+
+ dnl Reset the flags for the next flag check.
+ CXXFLAGS="$ace_save_CXXFLAGS"
+ done
+
+ dnl Reset the flags to a consistent state.
+ dnl This prevents duplicate flags from being added to
+ dnl the CCXXFLAGS variable.
+ CXXFLAGS="$ace_save_CXXFLAGS"
+ ],
+ [
+ dnl Add the found/cached thread flag to the C/CXXFLAGS variables
+ CXXFLAGS="$CXXFLAGS $ace_cv_thread_flag_search"
+
+ $2
+ ],
+ [
+ $3
+ ])
+])
+
+
+dnl Check if the compiler defines thread related preprocessor flags.
+dnl If not, then provide them.
+dnl Usage: ACE_CHECK_THREAD_CPPFLAGS
+AC_DEFUN([ACE_CHECK_THREAD_CPPFLAGS],
+[
+ dnl A compile-time test is used instead of a preprocesse-time test
+ dnl because compiler thread flags defined in CFLAGS or CXXFLAGS
+ dnl should be used for this test.
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#if !defined (_REENTRANT) && !defined (_THREAD_SAFE)
+#error Neither _REENTRANT nor _THREAD_SAFE were defined.
+THROW ME AN ERROR!
+#endif
+ ]], [[
+ int a = 0; a++;
+ ]])],[
+ ACE_THR_CPPFLAGS=
+ ],[
+ ACE_THR_CPPFLAGS="-D_REENTRANT -D_THREAD_SAFE"
+ ])
+])
+
+dnl Check for POSIX threads support.
+dnl Usage: ACE_CHECK_POSIX_THREADS([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+AC_DEFUN([ACE_CHECK_POSIX_THREADS],
+[
+ dnl Because some platforms are brain damaged enough to provide
+ dnl useless thread function stubs, link tests may succeed despite the
+ dnl fact the stubs are no-ops. This forces us to use a run-time test
+ dnl to get around this nuisance by checking the return value of
+ dnl pthread_create(). The cross-compiled case will use a link-time
+ dnl test, instead.
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <pthread.h>
+
+extern "C" void *
+ace_start_func (void *)
+{
+ return 0;
+}
+
+int
+main ()
+{
+ pthread_t tid = 0;
+
+ return pthread_create (&tid, 0, ace_start_func, 0);
+}
+ ]])],
+ [$1],
+ [$2],
+ [
+ dnl POSIX threads check -- cross-compiled case
+
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <pthread.h>
+
+extern "C" void *
+ace_start_func (void *)
+{
+ return 0;
+}
+ ]],
+ [[
+ pthread_t tid = 0;
+
+ (void) pthread_create (&tid, 0, ace_start_func, 0);
+ ]])],
+ [$1],
+ [$2])
+ ])
+])
diff --git a/ACE/m4/tls.m4 b/ACE/m4/tls.m4
new file mode 100644
index 00000000000..f1c47e33051
--- /dev/null
+++ b/ACE/m4/tls.m4
@@ -0,0 +1,220 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl tls.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl that determine availablility of SSL/TLS support.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 2003 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+dnl TLS/SSL library IO check
+dnl Use this macro to determine if TLS/SSL support is available on the
+dnl current host.
+dnl Usage: ACE_CHECK_TLS
+AC_DEFUN([ACE_CHECK_TLS],
+[
+ AC_REQUIRE([AC_PROG_CXX])
+ AC_REQUIRE([AC_PROG_CXXCPP])
+ AC_LANG([C++])
+ AC_REQUIRE([AC_LANG])
+
+ ace_TLS_CPPFLAGS=""
+ ace_TLS_LDFLAGS=""
+
+ AC_ARG_WITH([openssl],
+ AS_HELP_STRING([--with-openssl@<:@=DIR@:>@],
+ [root directory of openssl installation]),
+ [
+ ace_with_openssl="${withval}"
+ if test "${ace_with_openssl}" != yes; then
+ ace_openssl_include="${ace_with_openssl}/include"
+ ace_openssl_libdir="${ace_with_openssl}/lib"
+ fi
+ ])
+
+ AC_ARG_WITH([openssl_include],
+ AS_HELP_STRING([--with-openssl-include=DIR],
+ [specify exact include dir for openssl headers]),
+ [ace_openssl_include="$withval"])
+
+ AC_ARG_WITH([openssl_libdir],
+ AS_HELP_STRING([--with-openssl-libdir=DIR],
+ [specify exact include dir for openssl libraries]),
+ [ace_openssl_libdir="$withval"])
+
+ if test "${ace_openssl_include}"; then
+ ace_TLS_CPPFLAGS="-I${ace_openssl_include}"
+ fi
+
+ if test "${ace_openssl_libdir}"; then
+ ace_TLS_LDFLAGS="-L${ace_openssl_libdir}"
+ fi
+
+ dnl Save the current library and preprocessor flagslist. We do not
+ dnl want to add the SSL/TLS-specific ones to the general library link
+ dnl and preprocessor flags list since they should only be used when
+ dnl building the ACE_SSL library and/or binaries that use the ACE_SSL
+ dnl library.
+ ace_save_LIBS="$LIBS"
+ ace_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ace_TLS_CPPFLAGS"
+ ace_save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $ace_TLS_LDFLAGS"
+
+ dnl ---------------------------------------------------------
+
+ dnl Check if OpenSSL requires the Kerberos include directory to be
+ dnl added to the header search path.
+
+ AC_CACHE_CHECK([for Kerberos include flags needed by OpenSSL],
+ [ac_cv_kerberos_dir],
+ [
+ dnl Try compiling without any Kerberos-specific flags first.
+
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([
+#include <openssl/ssl.h>
+ ],
+ [
+// ... THIS CODE DOES NOTHING! IT IS JUST USED FOR COMPILE TESTS ...
+
+// ... Perform TCP connection ...
+
+// ... Perform TLS/SSL stuff ...
+CRYPTO_set_locking_callback (0);
+SSLeay_add_ssl_algorithms ();
+SSL_load_error_strings ();
+SSL_METHOD * meth = TLSv1_method ();
+SSL_CTX * ctx = SSL_CTX_new (meth);
+SSL * ssl = SSL_new (ctx);
+int fd = 2000; // Dummy file descriptor value.
+SSL_set_fd (ssl, fd);
+SSL_connect (ssl);
+SSL_shutdown (ssl);
+
+// ...
+ ])
+ ],
+ [
+ ac_cv_kerberos_dir=no
+ ],
+ [
+ ace_kerberos_dir=""
+ for ace_kerberos in /usr /usr/local; do
+ ace_kerberos_dir="${ace_kerberos}/kerberos/include"
+ ace_kerberos_CPPFLAGS="-I${ace_kerberos_dir}"
+
+ CPPFLAGS="$ace_save_CPPFLAGS $ace_TLS_CPPFLAGS $ace_kerberos_CPPFLAGS"
+
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([
+#include <openssl/ssl.h>
+ ],
+ [
+// ... THIS CODE DOES NOTHING! IT IS JUST USED FOR COMPILE TESTS ...
+
+// ... Perform TCP connection ...
+
+// ... Perform TLS/SSL stuff ...
+CRYPTO_set_locking_callback (0);
+SSLeay_add_ssl_algorithms ();
+SSL_load_error_strings ();
+SSL_METHOD * meth = TLSv1_method ();
+SSL_CTX * ctx = SSL_CTX_new (meth);
+SSL * ssl = SSL_new (ctx);
+int fd = 2000; // Dummy file descriptor value.
+SSL_set_fd (ssl, fd);
+SSL_connect (ssl);
+SSL_shutdown (ssl);
+
+// ...
+ ])
+ ],
+ [
+ ac_cv_kerberos_dir="$ace_kerberos_dir"
+ break
+ ],
+ [
+ ac_cv_kerberos_dir=no
+ ])
+ done
+ ])
+ ])
+
+ AS_IF([test "$ac_cv_kerberos_dir" = no],
+ [
+ AC_SUBST([ACE_KERBEROS_INCLUDES],[.])
+ ],
+ [
+ ace_TLS_CPPFLAGS="$ace_TLS_CPPFLAGS -I${ac_cv_kerberos_dir}"
+ AC_SUBST([ACE_KERBEROS_INCLUDES],[$ac_cv_kerberos_dir])
+ ])
+
+ dnl ---------------------------------------------------------
+
+ dnl Add the TLS/SSL libraries to the library list.
+ ace_TLS_LIBS="-lssl -lcrypto"
+
+ LIBS="$ace_TLS_LIBS $LIBS"
+ LDFLAGS="$ace_TLS_LDFLAGS $LDFLAGS"
+
+ AC_CACHE_CHECK([for OpenSSL libraries],
+ [ac_cv_openssl_libs],
+ [
+ AC_LINK_IFELSE([
+ AC_LANG_PROGRAM([
+#include <openssl/ssl.h>
+ ],
+ [
+// ... THIS PROGRAM DOES NOTHING! IT IS JUST USED FOR LINK TESTS ...
+
+// ... Perform TCP connection ...
+
+// ... Perform TLS/SSL stuff ...
+CRYPTO_set_locking_callback (0);
+SSLeay_add_ssl_algorithms ();
+SSL_load_error_strings ();
+SSL_METHOD * meth = TLSv1_method ();
+SSL_CTX * ctx = SSL_CTX_new (meth);
+SSL * ssl = SSL_new (ctx);
+int fd = 2000; // Dummy file descriptor value.
+SSL_set_fd (ssl, fd);
+SSL_connect (ssl);
+SSL_shutdown (ssl);
+
+// ...
+ ])
+ ],
+ [
+ ac_cv_openssl_libs=yes
+ ],
+ [
+ ac_cv_openssl_libs=no
+ ])
+ ])
+
+ AS_IF([test $ac_cv_openssl_libs != no],
+ [
+AC_SUBST([ACE_TLS_CPPFLAGS],[$ace_TLS_CPPFLAGS])
+AC_SUBST([ACE_TLS_LDFLAGS],[$ace_TLS_LDFLAGS])
+AC_SUBST([ACE_TLS_LIBS],[$ace_TLS_LIBS])
+ ],
+ [])
+
+ dnl Restore the original library list and preprocessor flags.
+ LIBS="$ace_save_LIBS"
+ CPPFLAGS="$ace_save_CPPFLAGS"
+ LDFLAGS="$ace_save_LDFLAGS"
+])