summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in7622
1 files changed, 0 insertions, 7622 deletions
diff --git a/configure.in b/configure.in
deleted file mode 100644
index 5142d3ba7cb..00000000000
--- a/configure.in
+++ /dev/null
@@ -1,7622 +0,0 @@
-dnl
-AC_REVISION([$Id$])dnl
-
-dnl
-dnl An autoconf script to automatically configure ACE.
-dnl Process this file with autoconf to produce a configure script.
-dnl
-
-dnl
-dnl The autoconf documentation states that this is the recommended
-dnl sequence for this file:
-dnl
-dnl `AC_INIT(FILE)'
-dnl checks for programs
-dnl checks for libraries
-dnl checks for header files
-dnl checks for typedefs
-dnl checks for structures
-dnl checks for variables
-dnl checks for compiler characteristics
-dnl checks for library functions
-dnl checks for system services
-dnl `AC_OUTPUT([FILE...])'
-dnl
-dnl I followed this convention, and added a few sections.
-dnl -- Gonzo
-
-
-dnl
-dnl SECTION 1: `AC_INIT(FILE)'
-dnl
-dnl This macro must be the very first invoked.
-dnl Its argument names a file that must exist in the directory where
-dnl autoconf will run, just to check things.
-dnl AC_INIT(ace_unique.m4)
-dnl
-AC_INIT(ace/ACE.cpp)dnl
-
-dnl Require GNU Autoconf 2.13 or better.
-AC_PREREQ(2.13)dnl
-
-dnl Add maintainer mode option to the option list.
-AM_MAINTAINER_MODE
-
-dnl The maintainer of this configure script.
-ACE_CONFIGURE_MAINTAINER='Ossama Othman <ossama@ece.uci.edu>'
-
-
-dnl Until autoconf support in ACE is complete, prevent this script
-dnl from running unless the user explictly forces the configure script
-dnl to run using the "--enable-maintainer-mode" configure script
-dnl option.
-dnl if test $USE_MAINTAINER_MODE != yes; then
-dnl AC_MSG_ERROR([
-dnl ACE autoconf support is currently disabled by default since it is
-dnl still under development. Please use the stock ACE build procedure
-dnl detailed in the file \`ACE-INSTALL.html'.
-dnl
-dnl If you wish to experiment with ACE's autoconf support then use the
-dnl \"--enable-maintainer-mode\" configure script option to enable
-dnl autoconf support. For more details see the file
-dnl \`ACE-configuration.txt'.])
-dnl fi dnl test $USE_MAINTAINER_MODE != yes
-
-dnl If we are configuring in a CVS controlled directory then don't
-dnl continue any further. The idea is to prevent automatically
-dnl generated files from being checked into the repository. This
-dnl will prevent accidental overwrites of ACE's current Makefiles by
-dnl the automatically generated ones, for example.
-dnl ACE_CHECK_FOR_CVS_DIR
-
-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.
-ACE_CHECK_TOP_SRCDIR
-
-
-
-dnl Check what platform we are running on.
-AC_CANONICAL_SYSTEM
-
-dnl Allow the standard program name transformations.
-dnl We probably don't need AC_ARG_PROGRAM any longer since AM_INIT_AUTOMAKE
-dnl handles this functionality. -- Ossama
-dnl AC_ARG_PROGRAM
-
-dnl Cause GNU Automake to initialize the state of things and run
-dnl some sanity checks
-PACKAGE=ace
-changequote(, )dnl
-ACE_VERSION=`head -1 ${srcdir}/VERSION | sed 's/.*version \([0-9.]*\).*/\1/'`
-changequote([, ])dnl
-
-AM_INIT_AUTOMAKE("$PACKAGE", "$ACE_VERSION", DUMMY)dnl
-
-dnl Generate a header file with all settings.
-AM_CONFIG_HEADER(ace/config.h)dnl
-
-dnl Move before the AC_ARG_ENABLE stuff to prevent autoconf complaints.
-dnl This is a bit messy but it makes life easier for me.
-dnl -Ossama
-dnl
-dnl SECTION: checks for programs
-dnl
-
-dnl Check if system supports "#! /bin/sh" line in scripts
-AC_SYS_INTERPRETER
-
-dnl Check the C compiler and preprocessor.
-AC_PROG_CC
-AC_PROG_CPP
-AC_PROG_CC_C_O
-
-dnl Check the C++ compiler and preprocessor.
-AC_PROG_CXX
-AC_PROG_CXXCPP
-
-dnl Set the test language as C++
-AC_LANG_CPLUSPLUS
-
-dnl If we are cross compiling disable certain things in the Makefiles.
-AM_CONDITIONAL(ACE_CROSS_COMPILED, test X$cross_compiling = Xyes)dnl
-
-
-dnl This checks for a binary called gm4, gnum4 or m4, and assigns
-dnl whatever was found (or "gonzo") to the M4 macro.
-dnl AC_CHECK_PROGS(M4, gm4 gnum4 m4, gonzo)
-
-dnl Look for the best awk-style program available.
-AC_PROG_AWK
-
-dnl Set some version information
-ACE_CURRENT=0
-ACE_AGE=0
-ACE_REVISION=0
-
-if test -n "$AWK"; then
- ACE_MAJOR=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]1 }'`
- ACE_MINOR=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]2 }'`
- ACE_BETA=`echo "$ACE_VERSION" | sed 's/\./ /g' | $AWK '{ print \[$]3 }'`
-
-dnl Make sure all of the versions have a legitimate value, i.e. not an
-dnl empty string.
- test -z $ACE_MAJOR && ACE_MAJOR=0
- test -z $ACE_MINOR && ACE_MINOR=0
- test -z $ACE_BETA && ACE_BETA=0
-
-dnl This is a terrible kludge to fool libtool into making it produce a shared
-dnl library with the "right" version information.
-dnl We really should switch to a version scheme that is compatible with
-dnl libtool.
-dnl -Ossama
-ACE_CURRENT=`expr $ACE_MAJOR + $ACE_MINOR`
-ACE_AGE=$ACE_MINOR
-ACE_REVISION=$ACE_BETA
-
-fi
-
-AC_SUBST(ACE_CURRENT)dnl
-AC_SUBST(ACE_AGE)dnl
-AC_SUBST(ACE_REVISION)dnl
-
-dnl Do the usual install settings; don't forget to include a
-dnl `install-sh' script, in case there is no BSD compatible `install'
-dnl installed (no pun intended) in your machine.
-dnl
-dnl We don't need this anymore since AM_INIT_AUTOMAKE calls AC_PROG_INSTALL.
-dnl -- Ossama
-dnl AC_PROG_INSTALL
-
-dnl Special handling for some UNIX variants and Cygwin32
-AC_AIX
-
-dnl This test replaces the obsolete AC_ISC_POSIX kludge.
-AC_CHECK_LIB([cposix], [strerror], [LIBS="$LIBS -lcposix"])dnl
-
-AC_MINIX
-AC_CYGWIN
-
-dnl Check if we support symlinks
-AC_PROG_LN_S
-
-dnl Check if a lexical analyzer exists (lex, flex, etc.)
-AM_PROG_LEX
-
-dnl Check if some implementation of YACC exists (yacc, byacc, bison, etc.)
-AC_PROG_YACC
-dnl if test -z "$YACC"; then
-dnl ./missing yacc
-dnl fi
-
-dnl Check for perfect hash function generator
-AC_CHECK_PROG(GPERF, gperf, gperf)dnl
-
-dnl Check for profiling progam
-AC_CHECK_PROGS(PROF, gprof prof,)dnl
-
-dnl The user's/default C++ flags are stored in "CXXFLAGS." We use
-dnl the variable "ACE_CXXFLAGS" to set the C++ flags we want. At the end
-dnl of the configuration process we combine ACE_CXXFLAGS and CXXFLAGS
-dnl into CXXFLAGS (e.g., CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"). CXXFLAGS
-dnl goes after ACE_CXXFLAGS so that the user's C++ flag command line
-dnl choices always override the configure script's choices.
-ACE_CXXFLAGS=""
-ACE_CFLAGS=""
-
-
-dnl
-dnl SECTION 2: Configure script command line options
-dnl
-
-dnl Determine which subsets to build
-dnl This is done using the autoconf "--enable-foobar" mechanism.
-ACE_CHECK_SUBSETS
-
-dnl Add --{enable,disable,with,without}-feature options.
-ACE_CONFIGURATION_OPTIONS
-ACE_COMPILATION_OPTIONS
-
-dnl Configure the TAO directory if it exists.
-dnl TAO_CONFIGURATION_OPTIONS
-
-# Autoconf's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-# Libtool's setup macro calls AC_OBJEXT and AC_EXEEXT without setting
-# the test language to C. We do it before any libtool setup macros are
-# called so that the proper values are cached beforehand. We also do
-# it before any linker flags (LDFLAGS) are set so that C++ specific
-# ones don't break the tests.
-AC_LANG_SAVE
-AC_LANG_C
-AC_OBJEXT
-AC_EXEEXT
-AC_LANG_RESTORE
-
-dnl Call ACE_SET_COMPILER_FLAGS before AC_PROG_LIBTOOL and after the
-dnl AC_ARG_ENABLE and AC_ARG_WITH calls.
-ACE_SET_COMPILER_FLAGS
-
-dnl
-dnl SECTION 3: check for programs <--- moved before section 2 (Ossama)
-dnl
-
-dnl Platform specific libraries needed for ACE's autoconf tests
-dnl that currently do not have tests themselves.
-dnl Platform specific flags
-case "$target" in
- *freebsd*)
- LIBS="$LIBS -lcompat"
- ;;
- *osf3.2*)
- LIBS="$LIBS -lmach -lsys5 -lcxx -lc"
- ;;
- *osf4.0* | *osf5.0*)
- LIBS="$LIBS -lmach"
- ;;
- *psos*)
- LIBS="$LIBS -lm"
- ;;
-esac
-
-dnl
-dnl SECTION 4: checks for libraries
-dnl
-
-dnl Additional X library checks
-dnl We only check for these libraries if the user has
-dnl enabled XtReactor support.
-
-if test "$ace_user_enable_xt_reactor" = yes; then
-XTREACTOR_TEST_XLIBS=""
-dnl Check for Motif if we have X
- T_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $X_LIBS"
-
-dnl Note that ACE currently only needs -lX11 and -lXt for the XtReactor
-dnl so we define another library variable that contains additional
-dnl libraries for the XtReactor test since it needs either Motif or the
-dnl Athena widget set.
-
- xt_reactor_go=no
- AC_CHECK_LIB(Xm, XmCreateRowColumn, dnl
- [
- AC_DEFINE(ACE_HAS_XT)
- XTREACTOR_TEST_XLIBS="-lXm"
- xt_reactor_go=yes
- ],
- [
- AC_DEFINE(ACE_LACKS_MOTIF)
- AC_CHECK_LIB(Xaw, XawInitializeWidgetSet,
- [
- AC_DEFINE(ACE_HAS_XT)
- XTREACTOR_TEST_XLIBS="-lXaw -lXmu"
- xt_reactor_go=yes
- ],
- [
- xt_reactor_go=no
- AC_MSG_WARN(No usable X widget libraries were found.)
- AC_MSG_WARN(XtReactor support will be disabled.)
- ], -lXmu)
- ],-lXt)
-
- AC_SUBST(XTREACTOR_TEST_XLIBS)
-
- AM_CONDITIONAL(COMPILE_XTREACTOR_TEST, test X$xt_reactor_go = Xyes)
-
-dnl Restore pre-test linker flags
- LDFLAGS="$T_LDFLAGS"
-
-fi dnl test "$ace_user_enable_xt_reactor"= yes
-
-dnl End additional X library checks
-
-dnl Some platforms do not have a dynamic linking library, however the
-dnl dlopen, dlclose, etc., functions may exist in the C library.
-dnl (e.g. Digital UNIX)
-dnl Check for dynamic linking library
-ACE_SEARCH_LIBS(dlopen, dl svld, ace_has_svr4_dynamic_linking=yes, dnl
- [
- ace_has_svr4_dynamic_linking=no
- AC_CHECK_LIB(dld, shl_get,,)
- ])
-
-dnl Check if the socket library is available
-ACE_SEARCH_LIBS(socket, socket,,,-lnsl)dnl
-
-dnl Check for gethostbyname in -lnsl since some platforms (e.g. Solaris)
-dnl put it there.
-ACE_SEARCH_LIBS(gethostbyname, nsl, , )dnl
-
-dnl Check for getservbyname in -lxnet since some platforms (e.g. Solaris)
-dnl may put it there.
-ACE_SEARCH_LIBS(getservbyname, socket xnet, , AC_DEFINE(ACE_LACKS_GETSERVBYNAME), -lnsl)dnl
-
-
-dnl Check for compile() regex function in -lgen. Solaris, for example,
-dnl may put it there.
-ACE_SEARCH_LIBS(compile, gen,,)dnl
-
-dnl Check for exception handling library (e.g. for Digital UNIX)
-ACE_SEARCH_LIBS(exc_continue, exc,,)dnl
-
-dnl Check for ctime_r in -lc_r. Some platforms, such as Digital UNIX,
-dnl put reentrant functions such as asctime_r, ctime_r, gmtime_r, and
-dnl localtime_r in -lc_r.
-ACE_SEARCH_LIBS(ctime_r, c_r,,)dnl
-
-dnl TLI library check
-ACE_SEARCH_LIBS(t_accept, xti tli_r tli nsl, dnl
- ace_has_tli_funcs=yes, ace_has_tli_funcs=no)
-
-dnl Check for all of the things we need to compile and link threads
-dnl properly.
-if test "$ace_user_enable_threads" = yes; then
- ACE_CHECK_THREADS
-fi dnl test "$ace_user_enable_threads" = yes
-
-dnl Setup Libtool
-dnl
-dnl This should be done in the "programs" section of this file but
-dnl libtool may then be unaware of compiler flags set during the
-dnl thread checks.
-
-dnl Disable building of static libraries by default
-AC_DISABLE_STATIC
-
-dnl Enable Libtool module support
-AC_LIBTOOL_DLOPEN
-
-dnl FIXME: Temporary hack to make libtool work with g++.
-dnl Shared library support will only work with GNU g++ and GNU ld
-dnl right now.
-dnl save_CC="$CC"
-dnl CC="$CXX"
-
-dnl Check for libtool and turn on Automake processing for Libtool
-AC_PROG_LIBTOOL
-
-dnl Enable C++ support in libtool
-AC_LIBTOOL_CXX
-
-dnl Temporary hack until I get integrate libtool's new tag support
-dnl into automake.
-dnl This hack forces libtool to always use the C++ tag.
-LIBTOOL="$LIBTOOL --tag=CXX"
-
-dnl Check for sched_yield() in posix4 library.
-dnl Some platforms, such as Solaris, may define sched_yield() there.
-dnl Later we run AC_CHECK_FUNC(sched_yield), which is redundant in this case
-dnl but is needed if sched_yield() is defined in one of the other libraries
-dnl we check for.
-ACE_SEARCH_LIBS([sched_yield],[rt posix4],[ace_has_sched_yield=yes],)dnl
-
-dnl Check for asynchronous IO calls (perform check *after* thread check!)
-ACE_CHECK_ASYNCH_IO
-
-dnl Additional `-lposix4' library check since it may not be added by the
-dnl above checks on some platforms that may need it
-ACE_SEARCH_LIBS([clock_gettime],
- [rt posix4],[AC_DEFINE(ACE_HAS_CLOCK_GETTIME)],)dnl
-
-dnl
-dnl SECTION 5: checks for header files
-dnl
-
-dnl Check for dirent headers
-AC_HEADER_DIRENT
-
-if test "$ac_cv_header_dirent_dirent_h" = yes ||
- test "$ac_cv_header_dirent_sys_ndir_h" = yes ||
- test "$ac_cv_header_dirent_sys_dir_h" = yes ||
- test "$ac_cv_header_dirent_ndir_h" = yes; then
- AC_DEFINE(ACE_HAS_DIRENT)dnl
-fi
-
-dnl Check for sys/wait.h Posix.1 compliance
-AC_HEADER_SYS_WAIT
-
-if test "$ac_cv_cygwin" = yes; then
- AC_CHECK_HEADER(cygwin32/socket.h, dnl
- AC_DEFINE(ACE_HAS_CYGWIN32_SOCKET_H),)
-fi
-
-AC_CHECK_HEADER(dlfcn.h, dnl
- [
- dnl We already checked for dlopen in the previous library checks however,
- dnl it is possible that ac_cv_func_dlopen=yes if dlopen wasn't found before
- dnl the library test. Hence we cannot use AC_CHECK_FUNC(dlopen) here
- dnl the previously cached value may prevent ACE_HAS_SVR4_DYNAMIC_LINKING
- dnl from being defined.
- dnl -Ossama
- if test "$ace_has_svr4_dynamic_linking" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_DYNAMIC_LINKING)
- fi
- ],)
-
-AC_CHECK_HEADER(malloc.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_MALLOC_H))
-
-AC_CHECK_HEADER(memory.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_MEMORY_H))
-
-AC_CHECK_HEADER(bytesex.h, dnl
- AC_DEFINE(ACE_HAS_BYTESEX_H))
-
-dnl We don't need to explicitly include this on linux.
-dnl AC_CHECK_HEADER(features.h, dnl
-dnl AC_DEFINE(ACE_HAS_FEATURES_H))
-
-AC_CHECK_HEADER(sys/msg.h, dnl
- [
- ACE_CACHE_CHECK(if _KERNEL is needed for msg prototypes,
- ace_cv_lib_broken_msg_h,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/msg.h>
- ],
- [
- struct msg ace_msg;
- ],
- [
- ace_cv_lib_broken_msg_h=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef _KERNEL
-# define _KERNEL
-#endif
-#include <sys/msg.h>
- ],
- [
- struct msg ace_msg;
- ],
- [
- ace_cv_lib_broken_msg_h=yes
- ],
- [
- dnl If we get here, then we have no idea if it is broken or not.
- ace_cv_lib_broken_msg_h=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_MSG_H)
- ],)
- ],
- AC_DEFINE(ACE_LACKS_SYSV_MSG_H))
-
-AC_CHECK_HEADER(sys/param.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_PARAM_H))
-
-AC_CHECK_HEADER(sys/priocntl.h, ,)
-
-dnl Check for <ucontext.h> _before_ <sys/procfs.h>
-AC_CHECK_HEADER(ucontext.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_UCONTEXT_H))
-
-AC_CHECK_HEADER(sys/procfs.h, dnl
- [
- dnl Check if <sys/procfs.h> conflicts with <ucontext.h>
- dnl Some (early?) versions of glibc2.1 define the same variables
- dnl in <sys/procfs.h> and <ucontext.h>.
- ACE_CACHE_CHECK(if sys/procfs.h conflicts with ucontext.h,
- ace_has_procfs_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_UCONTEXT_H
-# include <ucontext.h>
-#endif
-
-#include <sys/procfs.h>
- ],
- [
- int a = 0;
- ],
- [
- ace_has_procfs_conflict=no
- ],
- [
- ace_has_procfs_conflict=yes
- ])
- ],
- [
- ],
- [
- dnl If ace_has_procfs_conflict = no then define ACE_HAS_PROC_FS.
- AC_DEFINE(ACE_HAS_PROC_FS)
- ])
- ],)
-
-AC_CHECK_HEADER(sys/select.h, dnl
- AC_DEFINE(ACE_HAS_SELECT_H))
-
-AC_CHECK_HEADER(netinet/tcp.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_TCP_H))
-
-AC_CHECK_HEADER(sys/sockio.h, dnl
- AC_DEFINE(ACE_HAS_SOCKIO_H))
-
-AC_CHECK_HEADER(sysent.h, dnl
- AC_DEFINE(ACE_HAS_SYSENT_H),)
-
-AC_CHECK_HEADER(sys/systeminfo.h, ,) dnl
-
-AC_CHECK_HEADER(sys/filio.h, dnl
- AC_DEFINE(ACE_HAS_SYS_FILIO_H),)
-
-AC_CHECK_HEADER(sys/uio.h,,) dnl
-
-AC_CHECK_HEADER(sys/ioctl.h, dnl
- AC_DEFINE(ACE_HAS_SYS_IOCTL_H),)
-
-AC_CHECK_HEADER(sys/types.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_SYS_TYPES_H))
-
-AC_CHECK_HEADER(sys/termios.h, dnl
- [
- AC_EGREP_CPP(ACE_WITH_TERM_IOCTLS,
- [
-#include <sys/termios.h>
-
-#if defined (ACE_HAS_SYS_IOCTL_H)
-# include <sys/ioctl.h>
-#endif
-
-#if defined(TCGETS) && defined(TCSETS)
- ACE_WITH_TERM_IOCTLS
-#elif defined(TCGETA) && defined(TCSETA)
- ACE_WITH_TERM_IOCTLS
-#endif
- ],
- [
- AC_DEFINE(ACE_HAS_TERM_IOCTLS)
- ],)
- ],)
-
-if test "$ace_has_tli_funcs" = yes; then
-AC_CHECK_HEADER(xti.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_XTI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-AC_CHECK_HEADER(sys/xti.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_SYS_XTI_H)
- AC_DEFINE(ACE_HAS_XTI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-AC_CHECK_HEADER(sys/timod.h, dnl
- [
- AC_DEFINE(ACE_HAS_TIMOD_H)
- ],
- [
- AC_CHECK_HEADER(tli/timod.h,
- [
- AC_DEFINE(ACE_HAS_OSF_TIMOD_H)
- ],)
- ])
-
-AC_CHECK_HEADER(tiuser.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_TIUSER_H)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-dnl Check if XTI headers are broken
-if test "$ac_cv_header_xti_h" = yes ||
- test "$ac_cv_header_sys_xti_h" = yes ||
- test "$ac_cv_header_tiuser_h" = yes; then
- ACE_CACHE_CHECK([if TCP macros are defined in XTI headers],
- [ace_cv_lib_has_broken_xti_macros],
- [
- AC_EGREP_CPP([ACE_BROKEN_XTI_MACROS],
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# include /**/ <sys/xti.h>
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_SYS_XTI_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (TCP_NODELAY) || defined (TCP_MAXSEG)
-ACE_BROKEN_XTI_MACROS
-#endif /* TCP_NODELAY || TCPMAXSEG */
- ],
- [
- ace_cv_lib_has_broken_xti_macros=yes
- ],
- [
- ace_cv_lib_has_broken_xti_macros=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_XTI_MACROS)
- ],)
-fi
-
-if test "$ac_cv_header_tiuser_h" = yes; then
- ACE_CACHE_CHECK(if tiuser.h is protected by extern \"C\",
- ace_cv_lib_tiuser_with_extern_c,[
- AC_EGREP_HEADER(extern \"C\", tiuser.h,
- [
- ace_cv_lib_tiuser_with_extern_c=yes
- ],
- [
- ace_cv_lib_tiuser_with_extern_c=no
- ])
- ], , AC_DEFINE(ACE_HAS_TIUSER_H_BROKEN_EXTERN_C))
-fi dnl test "$ac_cv_header_tiuser_h" = yes
-
-AC_CHECK_HEADER(xliuser.h, dnl
- [
- ace_has_tli=yes
- AC_DEFINE(ACE_HAS_XLI)
- AC_DEFINE(ACE_HAS_TLI)
- ],)
-
-
-dnl Check for TLI prototypes
-if test "$ace_has_tli" = yes; then
- ACE_CACHE_CHECK(for TLI prototypes,
- ace_cv_lib_tli_prototypes,
- [
-dnl We only check for t_accept. This should hopefully be enough.
- AC_EGREP_CPP(t_accept,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- ace_cv_lib_tli_prototypes=yes
- ],
- [
- ace_cv_lib_tli_prototypes=no
- ])
- ], AC_DEFINE(ACE_HAS_TLI_PROTOTYPES),)
-
-dnl Check for t_errno type in TLI headers
- ACE_CACHE_CHECK(for t_errno in TLI headers,
- ace_cv_lib_has_t_errno,
- [
- dnl Check if t_errno is declared in the TLI headers
- AC_EGREP_CPP(t_errno,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- ace_cv_lib_has_t_errno=yes
- ],
- [
- ace_cv_lib_has_t_errno=no
- ])
- ], , AC_DEFINE(ACE_LACKS_T_ERRNO))
-
-dnl Check if t_error incorrectly accepts char *
- ACE_CACHE_CHECK(if t_error incorrectly accepts char *,
- ace_cv_lib_has_broken_t_error,
- [
- dnl Check if t_errno is declared in the TLI headers
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-#if defined (ACE_HAS_TIMOD_H)
-# include <sys/timod.h>
-#endif
-
-#if defined (ACE_HAS_OSF_TIMOD_H)
-# include <tli/timod.h>
-#endif
-
-#if defined (ACE_HAS_TIUSER_H) || defined (ACE_HAS_XTI)
-# if defined (ACE_HAS_BROKEN_XTI_MACROS)
-# undef TCP_NODELAY
-# undef TCP_MAXSEG
-# endif /* ACE_HAS_BROKEN_XTI_MACROS */
-# if defined (ACE_HAS_TIUSER_H)
-# include /**/ <tiuser.h>
-# elif defined (ACE_HAS_SYS_XTI_H)
-# define class ace_xti_class
-# include /**/ <sys/xti.h>
-# undef class
-# else
-# include /**/ <xti.h>
-# endif /* ACE_HAS_TIUSER_H */
-#endif /* ACE_HAS_TIUSER_H || ACE_HAS_XTI */
-
-#if defined (ACE_HAS_XLI)
-# include <xliuser.h>
-#endif
- ],
- [
- const char *ace_errmsg = "FOO";
- t_error (ace_errmsg);
- ],
- [
- ace_cv_lib_has_broken_t_error=no
- ],
- [
- ace_cv_lib_has_broken_t_error=yes
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_BROKEN_T_ERROR)
- ],)
-
-fi dnl test "$ace_has_tli" = yes
-fi dnl test "$ace_has_tli_funcs" = yes
-
-AC_CHECK_HEADER(sys/time.h, dnl
- [
- dnl This is a weak test.
- AC_EGREP_HEADER(sys/time.h, time.h,
- ,
- [
- AC_DEFINE(ACE_LACKS_SYSTIME_H)
- ])
- ],)
-
-dnl See the notes about ACE_LACKS_MMAP in the functions section of this
-dnl configure script.
-dnl -Ossama
-AC_CHECK_HEADER(sys/mman.h, dnl
- [
- AC_EGREP_HEADER(extern \"C\", sys/mman.h,
- ,
- [
- AC_DEFINE(ACE_HAS_BROKEN_MMAP_H)
- ])
- ],
- [
- AC_DEFINE(ACE_LACKS_MMAP)
- ])
-
-dnl Check for bzero() prototype if bstring.h exists.
-AC_CHECK_HEADER(bstring.h, dnl
- [
- AC_EGREP_HEADER(bzero, bstring.h,
- [
- AC_DEFINE(ACE_HAS_BSTRING)
- ],)
- ],)
-
-AC_CHECK_HEADER(strings.h, dnl
- [
- AC_EGREP_HEADER(bzero, strings.h,
- [
- AC_DEFINE(ACE_HAS_STRINGS)
- ],)
- ],)
-
-AC_CHECK_HEADER(sys/syscall.h, dnl
- AC_DEFINE(ACE_HAS_SYSCALL_H),)
-
-AC_CHECK_HEADER(poll.h, dnl
- AC_DEFINE(ACE_HAS_POLL),)
-
-dnl We want AC_CHECK_HEADERS so that "HAVE_PWD_H" gets defined if we have it.
-dnl "HAVE_PWD_H" is used in one of the tests later on.
-AC_CHECK_HEADERS(pwd.h,,) dnl
-
-AC_CHECK_HEADER(regexpr.h, dnl
- AC_DEFINE(ACE_HAS_REGEX),)
-
-AC_CHECK_HEADER(stropts.h, dnl
- AC_DEFINE(ACE_HAS_STREAMS),)
-
-AC_CHECK_HEADER(siginfo.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_SIGINFO_H))
-
-AC_CHECK_HEADER(unistd.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_UNISTD_H))
-
-AC_CHECK_HEADER(utime.h, dnl
- AC_DEFINE(ACE_HAS_UTIME),)
-
-dnl This check will be disabled until we can get ACE to compile when it
-dnl ACE_HAS_WCHAR is defined on UN*X systems
-dnl AC_CHECK_HEADER(wchar.h,
-dnl AC_DEFINE(ACE_HAS_WCHAR),)
-
-AC_CHECK_HEADER(libc.h, dnl
- AC_DEFINE(ACE_HAS_LIBC_H))
-
-AC_CHECK_HEADER(osfcn.h, dnl
- AC_DEFINE(ACE_HAS_OSFCN_H))
-
-AC_CHECK_HEADER(new, dnl
- AC_DEFINE(ACE_HAS_NEW_NO_H),
- [
- AC_CHECK_HEADER(new.h, dnl
- AC_DEFINE(ACE_HAS_NEW_H))
- ])
-
-AC_CHECK_HEADER(stdexcept, dnl
- AC_DEFINE(ACE_HAS_STDEXCEPT_NO_H),
- [
- AC_CHECK_HEADER(exception.h, dnl
- AC_DEFINE(ACE_HAS_EXCEPTION_H))
- ])
-
-dnl ace/OS.i can #include <cstring>, not #include <cstring.h>
-dnl "cstring" is the correct form.
-dnl TODO: Double check the above comment.
-AC_CHECK_HEADER(cstring, dnl
- AC_DEFINE(ACE_HAS_GNU_CSTRING_H),)
-
-AC_CHECK_HEADER(memory,,) dnl
-
-AC_CHECK_HEADER(map, dnl
-[
- AC_CHECK_HEADER(net/if.h,
- [
- ACE_CACHE_CHECK(if STL map class conflicts with <net/if.h> map struct,
- ace_cv_header_stl_map_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <map>
-#include <net/if.h>
- ],
- [
- map<char, char> ace_map;
- ],
- [
- ace_cv_header_stl_map_conflict=no
- ],
- [
- ace_cv_header_stl_map_conflict=yes
- ])
- ], AC_DEFINE(ACE_HAS_STL_MAP_CONFLICT),)
- ],)
-],)
-
-AC_CHECK_HEADER(queue, dnl
-[
- AC_CHECK_HEADER(netinet/in.h,
- [
- ACE_CACHE_CHECK(if STL queue class conflicts with <netinet/in.h> queue struct,
- ace_cv_header_stl_queue_conflict,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <queue>
-#include <netinet/in.h>
- ],
- [
- queue<char> ace_queue;
- ],
- [
- ace_cv_header_stl_queue_conflict=no
- ],
- [
- ace_cv_header_stl_queue_conflict=yes
- ])
- ], AC_DEFINE(ACE_HAS_STL_QUEUE_CONFLICT),)
- ],)
-],)
-
-dnl Check for availablity of "new style" C++ stream headers
-AC_CHECK_HEADERS(iomanip ios iostream istream ostream fstream streambuf, dnl
- ,
- AC_DEFINE(ACE_USES_OLD_IOSTREAMS))
-
-AC_CHECK_HEADER(iostream.h, dnl
- AC_CHECK_HEADER(fstream.h, , AC_DEFINE(ACE_LACKS_IOSTREAM_TOTALLY)),
- AC_DEFINE(ACE_LACKS_IOSTREAM_TOTALLY))
-
-dnl Check if platform needs to #include <regexpr.h> for
-dnl regular expression support
-ACE_CACHE_CHECK(regexpr.h for regular expression support,
- ace_cv_needs_regexpr_h, [
- AC_EGREP_HEADER(compile, regexpr.h,
- [
- ace_cv_needs_regexpr_h=yes
- AC_DEFINE(ACE_NEEDS_REGEXPR_H)
- ],
- [
- AC_EGREP_HEADER(step, regexpr.h,
- [
- ace_cv_needs_regexpr_h=yes
- ],
- [
- ace_cv_needs_regexpr_h=no
- ])
- ])
- ], AC_DEFINE(ACE_NEEDS_REGEXPR_H),)
-
-dnl Check if sprintf() returns char*
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-ACE_CACHE_CHECK(if sprintf() returns char*,
- ace_cv_lib_charptr_sprintf,
- [
- AC_TRY_COMPILE(
- [
-#include <stdlib.h>
-#include <stdio.h>
- ],
- [
- char *str = 0;
- const char *fmt = "%d";
- int num = 0;
-
- char *s = 0;
-
- s = sprintf(str, fmt, num);
- ],
- [
- ace_cv_lib_charptr_sprintf=yes
- ],
- [
- ace_cv_lib_charptr_sprintf=no
- ])
- ], AC_DEFINE(ACE_HAS_CHARPTR_SPRINTF),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check for getopt() prototype
-ACE_CACHE_CHECK(for getopt() prototype, ace_cv_lib_getopt_proto, [
- AC_EGREP_HEADER(getopt, unistd.h,
- [
- ace_cv_lib_getopt_proto=yes
- ],
- [
- AC_EGREP_HEADER(getopt, stdlib.h,
- [
- ace_cv_lib_getopt_proto=yes
- ],
- [
- ace_cv_lib_getopt_proto=no
- ])
- ])
-], , AC_DEFINE(ACE_LACKS_GETOPT_PROTO))
-
-dnl Check for old malloc() prototype.
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-ACE_CACHE_CHECK(for old malloc() prototype,
- ace_cv_lib_old_malloc_proto,
- [
- AC_TRY_COMPILE(
- [
-#include <stdlib.h>
-#ifndef ACE_LACKS_MALLOC_H
-# include <malloc.h>
-#endif
- ],
- [
- char *s = 0;
- s = malloc(sizeof(int));
- ],
- [
- ace_cv_lib_old_malloc_proto=yes
- ],
- [
- ace_cv_lib_old_malloc_proto=no
- ])
- ], AC_DEFINE(ACE_HAS_OLD_MALLOC),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check for *_timedwait() prototypes
-dnl TODO: We only check for one of the *_timedwait() prototypes.
-dnl Is this enough?
-ACE_CACHE_CHECK(for *_timedwait() prototypes, ace_cv_lib_timedwait_proto, [
- AC_EGREP_HEADER(recv_timedwait, pthread.h,
- [
- ace_cv_lib_timedwait_proto=yes
- ],
- [
- AC_EGREP_HEADER(recv_timedwait, fcntl.h,
- [
- ace_cv_lib_timedwait_proto=yes
- ],
- [
- ace_cv_lib_timedwait_proto=no
- ])
- ])
-], , AC_DEFINE(ACE_LACKS_TIMEDWAIT_PROTOTYPES))
-
-dnl Check for ualarm prototype in unistd.h.
-dnl Most Unices seem to put it there (?)
-ACE_CACHE_CHECK(for ualarm() prototype, ace_cv_lib_ualarm_proto, [
- AC_EGREP_HEADER(ualarm, unistd.h,
- [
- ace_cv_lib_ualarm_proto=yes
- ],
- [
- ace_cv_lib_ualarm_proto=no
- ])
-], , AC_DEFINE(ACE_LACKS_UALARM_PROTOTYPE))
-
-dnl Check for getrusage prototype in sys/resource.h
-ACE_CACHE_CHECK(for getrusage() in sys/resource.h,
- ace_cv_lib_has_getrusage_proto, [
- AC_EGREP_HEADER(getrusage, sys/resource.h,
- [
- ace_cv_lib_has_getrusage_proto=yes
- ],
- [
- ace_cv_lib_has_getrusage_proto=no
- ])
-], AC_DEFINE(ACE_HAS_GETRUSAGE_PROTO),)
-
-dnl Check for {get,set}rlimit prototypes in sys/resource.h
-ACE_CACHE_CHECK(for getrlimit() and setrlimit() in sys/resource.h,
- ace_cv_lib_has_getsetrlimit_proto, [
- AC_EGREP_HEADER(getrlimit, sys/resource.h,
- [
- AC_EGREP_HEADER(getrlimit, sys/resource.h,
- [
- ace_cv_lib_has_getsetrlimit_proto=yes
- ],
- [
- ace_cv_lib_has_getsetrlimit_proto=no
- ])
- ],
- [
- ace_cv_lib_has_getsetrlimit_proto=no
- ])
-], , AC_DEFINE(ACE_LACKS_RLIMIT_PROTOTYPE))
-
-dnl Check for platforms that don't declare dl* functions
-dnl as extern "C" in dlfcn.h.
-dnl TODO: This check looks feeble to me...
-dnl NOTE: Linux header files ARE protected with extern "C" by the
-dnl __BEGIN_DECLS macro, so don't be surprised!
-ACE_CACHE_CHECK(if dlfcn.h is protected by extern \"C\",
- ace_cv_lib_dlfcn_with_extern_c,[
- AC_EGREP_HEADER(extern \"C\", dlfcn.h,
- [
- ace_cv_lib_dlfcn_with_extern_c=yes
- ],
- [
- ace_cv_lib_dlfcn_with_extern_c=no
- ])
-], , AC_DEFINE(ACE_HAS_DLFCN_H_BROKEN_EXTERN_C))
-
-
-dnl
-dnl SECTION 6: Checks for typedefs
-dnl
-
-dnl Standard typedef checks (All of them may not be needed)
-AC_TYPE_UID_T
-AC_TYPE_MODE_T
-AC_TYPE_OFF_T
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-
-dnl AC_CHECK_TYPE (off64_t, long long)
-
-dnl Specific typedef checks
-dnl TODO: Check whether these typedefs can be defined somewhere else.
-ACE_CHECK_TYPE(idtype_t, signal.h, AC_DEFINE(ACE_HAS_IDTYPE_T),)
-ACE_CHECK_TYPE(sem_t, semaphore.h,,)
-ACE_CHECK_TYPE(key_t, sys/types.h, ,AC_DEFINE(ACE_LACKS_KEY_T))
-ACE_CHECK_TYPE(ssize_t, sys/types.h, AC_DEFINE(ACE_HAS_SSIZE_T),)
-ACE_CHECK_TYPE(u_longlong_t, sys/types.h, , AC_DEFINE(ACE_LACKS_U_LONGLONG_T))
-ACE_CHECK_TYPE(pri_t, sys/types.h, ,AC_DEFINE(ACE_LACKS_PRI_T))
-ACE_CHECK_TYPE(ucontext_t, ucontext.h,
- [
- AC_DEFINE(ACE_HAS_UCONTEXT_T)
- ],
- [
- dnl Some platforms define ucontext_t in <sys/ucontext.h>, but ACE
- dnl doesn't explicitly include that header. However, it is very likely
- dnl that <signal.h> does, either directly or indirectly.
- ACE_CHECK_TYPE(ucontext_t, signal.h, AC_DEFINE(ACE_HAS_UCONTEXT_T))
- ])
-ACE_CHECK_TYPE(wchar_t, wchar.h,,
- [
- ACE_CHECK_TYPE(wchar_t, sys/types.h,,AC_DEFINE(ACE_LACKS_WCHAR_T))
- ])
-
-ACE_CHECK_TYPE(socklen_t, sys/socket.h, AC_DEFINE(ACE_HAS_SOCKLEN_T),
- [
- dnl The compiler in linux just issues a warning, and the test
- dnl passes!!!
- dnl
- dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
- dnl -Ossama
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
- dnl Check if socket size is denoted by size_t
- ACE_CACHE_CHECK(if socket size is denoted by size_t,
- ace_cv_lib_posix_socket_len_size_t,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- struct sockaddr* addr = 0;
- int* addrlen = 0;
- accept(s, addr, addrlen);
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=no
- ],
- [
- dnl Now see if it really does take a size_t socket size
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- struct sockaddr* addr = 0;
- size_t* addrlen = 0;
- accept(s, addr, addrlen);
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=yes
- ],
- [
- ace_cv_lib_posix_socket_len_size_t=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_SIZET_SOCKET_LEN),)
- ])
- ])
-
-dnl Check for sig_atomic_t
-ACE_CACHE_CHECK(for sig_atomic_t,
- ace_cv_lib_posix_defines_sig_atomic_t,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <signal.h>
- ],
- [
- sig_atomic_t sat;
- ],
- [
- ace_cv_lib_posix_defines_sig_atomic_t=yes
- ],
- [
- ace_cv_lib_posix_defines_sig_atomic_t=no
- ])
-], AC_DEFINE(ACE_HAS_SIG_ATOMIC_T),)
-
-
-dnl
-dnl SECTION 7: checks for structures
-dnl
-
-dnl TODO: Check whether these structures can be defined somewhere else.
-ACE_CHECK_STRUCT(flock, fcntl.h, , AC_DEFINE(ACE_LACKS_FILELOCKS))
-ACE_CHECK_STRUCT(rwlock_t, synch.h, , AC_DEFINE(ACE_LACKS_RWLOCK_T))
-ACE_CHECK_STRUCT(strbuf, stropts.h, AC_DEFINE(ACE_HAS_STRBUF_T),)
-ACE_CHECK_STRUCT(msgbuf, sys/msg.h, , AC_DEFINE(ACE_LACKS_MSGBUF_T))
-case "$target" in
-*irix*)
- dnl IRIX prusage fields don't match what ACE currently supports.
- ;;
-*)
- ACE_CHECK_STRUCT(prusage_t, sys/procfs.h, AC_DEFINE(ACE_HAS_PRUSAGE_T),)
- ;;
-esac
-ACE_CHECK_STRUCT(strrecvfd, stropts.h, , AC_DEFINE(ACE_LACKS_STRRECVFD))
-ACE_CHECK_STRUCT(sigaction, signal.h, , AC_DEFINE(ACE_LACKS_SIGACTION))
-ACE_CHECK_STRUCT(sigset_t, signal.h, , AC_DEFINE(ACE_LACKS_SIGSET))
-ACE_CHECK_STRUCT(utsname, sys/utsname.h, , AC_DEFINE(ACE_LACKS_UTSNAME_T))
-
-ACE_CACHE_CHECK([for struct sembuf],[ace_cv_struct_sembuf],
- [
- dnl Some platforms may need to include some headers before <sys/sem.h>.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/ipc.h>
-#include <sys/sem.h>
- ],
- [
- struct sembuf ace_sembuf;
- ],
- [
- ace_cv_struct_sembuf=yes
- ],
- [
-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_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/ipc.h>
-#include <sys/sem.h>
- ],
- [
- sembuf ace_sembuf;
- ],
- [
- ace_cv_struct_sembuf=yes
- ],
- [
- ace_cv_struct_sembuf=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_SEMBUF_T))
-
-dnl Thanks to Konstantinos Margaritis <kmargar@cc.uoa.gr> for pointing out
-dnl that struct siginfo_t may also be defined in signal.h
-ACE_CACHE_CHECK(for struct siginfo_t, ace_cv_struct_siginfo_t,
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(siginfo_t, siginfo.h,
- [
- ace_cv_struct_siginfo_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(siginfo_t, signal.h,
- [
- ace_cv_struct_siginfo_t=yes
- ],
- [
- ace_cv_struct_siginfo_t=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIGINFO_T)
- ],)
-
-dnl Some platforms need to include sys/types.h before sys/socket.h
-dnl in order for struct msghdr to work.
-dnl Check for msghdr structure.
-ACE_CACHE_CHECK(for struct msghdr, ace_cv_struct_msghdr,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- struct msghdr ace_msghdr;
- ],
- [
- ace_cv_struct_msghdr=yes
- ],
- [
- ace_cv_struct_msghdr=no
- ])
- ], AC_DEFINE(ACE_HAS_MSG),)
-
-ACE_CACHE_CHECK(for condition variable support, ace_cv_struct_cond_t,
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
- ],
- [
- pthread_cond_t ace_pthread_cond_t;
- ],
- [
- ace_cv_struct_cond_t=yes
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <synch.h>
- ],
- [
- cond_t ace_cond_t;
- ],
- [
- ace_cv_struct_cond_t=yes
- ],
- [
- ace_cv_struct_cond_t=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_COND_T))
-
-dnl Check for struct timespec
-ACE_CACHE_CHECK(for POSIX timer structure,
- ace_cv_lib_posix_timer_struct,[
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_timer_struct=yes
- ],
- [
- dnl Check if platform uses struct timestruc_t for POSIX timers
- dnl instead of struct timespec.
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timestruc_t sr;
- ],
- [
- ace_cv_lib_posix_timer_struct=yes
- dnl Check for struct timespec in <sys/timers.h>
- ACE_CACHE_CHECK(for struct timespec in sys/timers.h,
- ace_cv_lib_posix_struct_timespec_broken,[
- AC_TRY_COMPILE(
- [
-#include <sys/timers.h>
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=yes
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME),)
- ],
- [
- ace_cv_lib_posix_timer_struct=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_POSIX_TIME)
- if test "$ace_cv_lib_posix_struct_timespec_broken" = yes; then
- AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME)
- fi
- ],
- [
- dnl Check for struct timespec in <sys/timers.h>
- ACE_CACHE_CHECK(for struct timespec in sys/timers.h,
- ace_cv_lib_posix_struct_timespec_broken,[
- AC_TRY_COMPILE(
- [
-#include <sys/timers.h>
- ],
- [
- timespec sr;
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=yes
- ],
- [
- ace_cv_lib_posix_struct_timespec_broken=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_POSIX_TIME),)
- ])
-
-dnl Check for typedef timespec_t
-dnl TODO: Check whether this typedef can be defined somewhere else.
-ACE_CACHE_CHECK(for timespec_t,
- ace_cv_lib_posix_timespec_t,[
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec_t tt;
- ],
- [
- ace_cv_lib_posix_timespec_t=yes
- ],
- [
- ace_cv_lib_posix_timespec_t=no
- ])
-], , AC_DEFINE(ACE_LACKS_TIMESPEC_T))
-
-dnl Check for union semun
-ACE_CACHE_CHECK(for union semun,
- ace_cv_lib_posix_defines_union_semun,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/sem.h>
- ],
- [
-/* We could also check if the macro _SEM_SEMUN_UNDEFINED is defined.
- No big deal. */
-
-semun us;
- ],
- [
- ace_cv_lib_posix_defines_union_semun=yes
- ],
- [
- ace_cv_lib_posix_defines_union_semun=no
- ])
-], AC_DEFINE(ACE_HAS_SEMUN),)
-
-
-dnl
-dnl SECTION 8: checks for variables
-dnl
-
-dnl Check for broken struct timespec members
-ACE_CACHE_CHECK(for broken struct timespec members,
- ace_cv_lib_broken_timespec,
- [
- AC_TRY_COMPILE(
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- timespec sr;
- sr.ts_sec = 0;
- sr.ts_nsec = 0;
- ],
- [
- ace_cv_lib_broken_timespec=yes
- ],
- [
- ace_cv_lib_broken_timespec=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_TIMESPEC_MEMBERS),)
-
-dnl Check for more than two fields in struct rusage
-ACE_CACHE_CHECK(for limited struct rusage,
- ace_cv_lib_limited_rusage,[
- AC_TRY_COMPILE(
- [
-#include <sys/resource.h>
- ],
- [
- rusage ace_rusage;
- /*
- We just pick three (i.e. > 2) of the fields that
- ACE uses to see if we have a struct rusage that
- has more than two fields.
- */
- ace_rusage.ru_ixrss = 0;
- ace_rusage.ru_idrss = 0;
- ace_rusage.ru_isrss = 0;
- ],
- [
- ace_cv_lib_limited_rusage=no
- ],
- [
- ace_cv_lib_limited_rusage=yes
- ])
-], AC_DEFINE(ACE_HAS_LIMITED_RUSAGE_T),)
-
-if test "$ace_cv_struct_siginfo_t" = yes; then
- dnl Check for si_addr member in struct siginfo_t
- ACE_CACHE_CHECK(for si_addr member in struct siginfo_t,
- ace_cv_lib_posix_si_addr,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SIGINFO_H
-# include <siginfo.h>
-#endif
-#include <signal.h>
- ],
- [
- siginfo_t acesig;
- acesig.si_addr = 0;
- ],
- [
- ace_cv_lib_posix_si_addr=yes
- ],
- [
- ace_cv_lib_posix_si_addr=no
- ])
- ], , AC_DEFINE(ACE_LACKS_SI_ADDR))
-fi dnl test "$ace_cv_struct_siginfo_t" = yes
-
-dnl Check for sin_len member in struct sockaddr_in
-ACE_CACHE_CHECK(for sin_len member in struct sockaddr_in,
- ace_cv_lib_has_sin_len,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/in.h>
- ],
- [
- sockaddr_in ace_sin;
- ace_sin.sin_len = sizeof(ace_sin);
- ],
- [
- ace_cv_lib_has_sin_len=yes
- ],
- [
- ace_cv_lib_has_sin_len=no
- ])
-], AC_DEFINE(ACE_HAS_SIN_LEN),)
-
-dnl Check for sys_siglist
-dnl TODO: Check whether this variable can be defined somewhere else.
-dnl [OSSAMA: Should we use autoconf's AC_DECL_SYS_SIGLIST test instead?]
-ACE_CACHE_CHECK(for sys_siglist,
- ace_cv_lib_posix_sys_siglist,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#include <signal.h>
-#if !defined (_sys_siglist)
-# define _sys_siglist sys_siglist
-#endif
- ],
- [
- void* vp = (void*) &_sys_siglist;
- ],
- [
- ace_cv_lib_posix_sys_siglist=yes
- ],
- [
- ace_cv_lib_posix_sys_siglist=no
- ])
-], AC_DEFINE(ACE_HAS_SYS_SIGLIST),)
-
-dnl Check for sys_errlist
-dnl TODO: Check whether this variable can be defined somewhere else.
-ACE_CACHE_CHECK(for sys_errlist,
- ace_cv_lib_posix_sys_errlist,[
- AC_TRY_COMPILE(
- [
-#include <stdio.h>
-#include <errno.h>
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
- ],
- [
- void* vp = (void*) &_sys_errlist;
- ],
- [
- ace_cv_lib_posix_sys_errlist=yes
- ],
- [
- dnl Check if sys_errlist is a global variable in a library
- AC_TRY_LINK(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_errlist)
-# define _sys_errlist sys_errlist
-#endif
-
-extern const char * const _sys_errlist[];
- ],
- [
- void* vp = (void*) &_sys_errlist;
- ],
- [
- ace_cv_lib_posix_sys_errlist=yes
- ],
- [
- ace_cv_lib_posix_sys_errlist=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_SYS_ERRLIST),)
-
-dnl Check for sys_nerr
-dnl TODO: Check whether this variable can be defined somewhere else.
-ACE_CACHE_CHECK([for sys_nerr],
- [ace_cv_lib_posix_sys_nerr],[
- AC_TRY_COMPILE(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_nerr)
-# define _sys_nerr sys_nerr
-#endif
- ],
- [
- void* vp = (void*) &_sys_nerr;
- ],
- [
- ace_cv_lib_posix_sys_nerr=yes
- ],
- [
- dnl Check if sys_nerr is a global variable in a library
- AC_TRY_LINK(
- [
-#include <stdio.h>
-#include <errno.h>
-
-#if !defined (_sys_nerr)
-# define _sys_nerr sys_nerr
-#endif
-
-extern int _sys_nerr;
- ],
- [
- void* vp = (void*) &_sys_nerr;
- ],
- [
- ace_cv_lib_posix_sys_nerr=yes
- ],
- [
- ace_cv_lib_posix_sys_nerr=no
- ])
- ])
- ],
- [
- dnl Do nothing
- ],
- [
- AC_DEFINE(ACE_LACKS_SYS_NERR)
- ])
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl
-dnl SECTION 9: checks for compiler characteristics
-dnl
-
-dnl Check if compiler accepts "#pragma once" directive
-ACE_CONVERT_WARNINGS_TO_ERRORS([
- ACE_CACHE_CHECK(if compiler accepts \"pragma once\" directive,
- ace_cv_has_pragma_once,
- [
- AC_TRY_COMPILE(
- [
-#pragma once
- ],
- [
- int a = 0; /* Put this here so we don't have an empty main(). */
- ],
- [
- ace_cv_has_pragma_once=yes
- ],
- [
- ace_cv_has_pragma_once=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PRAGMA_ONCE))
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl If we are using GNU C++, see if it accepts the -pipe compiler flag.
-dnl "-pipe" on cygwin32 doesn't seem to work, for example.
-if test -n "$GXX"; then
- PREPIPECXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -pipe"
- PREPIPECFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -pipe"
- ACE_CACHE_CHECK(if \"-pipe\" compiler flag is supported,
- ace_cv_feature_gxx_has_pipe,
- [
- AC_TRY_COMPILE(, [int a = 0;],
- [
- ace_cv_feature_gxx_has_pipe=yes
- ],
- [
- ace_cv_feature_gxx_has_pipe=no
- ])
- ],
- [
- dnl We don't need to add "-pipe" here since it was already added
- dnl for the test.
- dnl CXXFLAGS="$PREPIPECXXFLAGS -pipe"
- dnl CFLAGS="$PREPIPECFLAGS -pipe"
- ],
- [
- CXXFLAGS="$PREPIPECXXFLAGS"
- CFLAGS="$PREPIPECFLAGS"
- ])
-fi
-
-dnl Check for working "const"
-dnl This test doesn't always work.
-dnl AC_C_CONST
-
-dnl Check for working "inline"
-dnl AC_C_INLINE dnl This test now appears to be broken!!!
-if test "$ac_cv_c_inline" = no; then
- AC_DEFINE(ACE_LACKS_INLINE_FUNCTIONS)
-fi
-
-dnl Check to see if we are running on a big endian platform
-dnl "ace/Basic_Types.h" should perhaps be modified to take advantage
-dnl of the results of this test.
-dnl Do not run this test if we are using a cross-compiler.
-if test "$cross_compiling" != yes; then
- AC_C_BIGENDIAN
-fi
-
-dnl Check type sizes
-dnl If we get a size of zero, then the type is unknown to the compiler.
-
-dnl We don't need to check for sizeof(char) right now. Also conflicts with
-dnl ACE definition in Basic_Types.h, so we leave the test out.
-if test "$cross_compiling" != yes; then
- dnl AC_CHECK_SIZEOF(char, 1)
- dnl if test "$ac_cv_sizeof_char" != "0"; then
- dnl AC_DEFINE(ACE_SIZEOF_CHAR, SIZEOF_CHAR)
- dnl fi
- AC_CHECK_SIZEOF(short, 2)
- if test $ac_cv_sizeof_short != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_SHORT, $ac_cv_sizeof_short)
- fi
- AC_CHECK_SIZEOF(int, 4)
- if test $ac_cv_sizeof_int != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_INT, $ac_cv_sizeof_int)
- fi
- AC_CHECK_SIZEOF(long, 4)
- if test $ac_cv_sizeof_long != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG, $ac_cv_sizeof_long)
- fi
- AC_CHECK_SIZEOF(long long, 8)
- if test $ac_cv_sizeof_long_long != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG_LONG, $ac_cv_sizeof_long_long)
- else
- AC_DEFINE(ACE_LACKS_LONGLONG_T)
- fi
- AC_CHECK_SIZEOF(void *, 4)
- if test $ac_cv_sizeof_void_p != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_VOID_P, $ac_cv_sizeof_void_p)
- fi
- AC_CHECK_SIZEOF(float, 4)
- if test $ac_cv_sizeof_float != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_FLOAT, $ac_cv_sizeof_float)
- else
- AC_DEFINE(ACE_LACKS_FLOATING_POINT)
- fi
- AC_CHECK_SIZEOF(double, 8)
- if test $ac_cv_sizeof_double != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_DOUBLE, $ac_cv_sizeof_double)
- else
- AC_DEFINE(ACE_LACKS_FLOATING_POINT)
- fi
- AC_CHECK_SIZEOF(long double, 16)
- if test $ac_cv_sizeof_long_double != 0; then
- AC_DEFINE_UNQUOTED(ACE_SIZEOF_LONG_DOUBLE, $ac_cv_sizeof_long_double)
- fi
-
- dnl Set the 64 bit unsigned int typedef
- ACE_UINT64=""
- dnl if test "$ace_cv_type_u_longlong_t" = yes; then
- dnl This doesn't work: AC_CHECK_SIZEOF(u_longlong_t, 8)
- dnl if test $ac_cv_sizeof_u_longlong_t = 8; then
- dnl ACE_UINT64="u_longlong_t"
- dnl ace_u_long_long_typedef_set=yes
- dnl fi
- dnl elif test $ac_cv_sizeof_long = 8; then
- if test $ac_cv_sizeof_long = 8; then
- ACE_UINT64="unsigned long"
- ace_u_long_long_typedef_set=yes
- elif test $ac_cv_sizeof_long_long = 8; then
- ACE_UINT64="unsigned long long"
- ace_u_long_long_typedef_set=yes
- else
- ace_u_long_long_typedef_set=no
- fi
-
- dnl Check for broken "signed char"
- dnl If AC_CHECK_SIZEOF(signed char) returns zero then "signed char"
- dnl is broken.
- AC_CHECK_SIZEOF(signed char, 1)
- if test $ac_cv_sizeof_signed_char = 0; then
- AC_DEFINE(ACE_LACKS_SIGNED_CHAR)
- fi
-fi dnl test "$cross_compiling" != yes
-
-dnl Other checks
-
-
-dnl Check for istream operator>> for char, unsigned char and signed char
-ACE_CACHE_CHECK(for istream operator>> for char types,
- ace_cv_feature_char_right_shifts,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
-unsigned char a = 0;
-cin >> a;
-
-#ifndef ACE_LACKS_SIGNED_CHAR
-signed char b = 0;
-cin >> b;
-#endif
- ],
- [
- ace_cv_feature_char_right_shifts=yes
- ],
- [
- ace_cv_feature_char_right_shifts=no
- ])
- ], , AC_DEFINE(ACE_LACKS_CHAR_RIGHT_SHIFTS))
-
-
-dnl Check for istream operator>> for char *, unsigned char * and signed char *
-ACE_CACHE_CHECK(for istream operator>> for char * types,
- ace_cv_feature_char_ptr_right_shifts,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
-unsigned char * a = 0;
-cin >> a;
-
-#ifndef ACE_LACKS_SIGNED_CHAR
-signed char * b = 0;
-cin >> b;
-#endif
- ],
- [
- ace_cv_feature_char_ptr_right_shifts=yes
- ],
- [
- ace_cv_feature_char_ptr_right_shifts=no
- ])
- ], , AC_DEFINE(ACE_LACKS_CHAR_STAR_RIGHT_SHIFTS))
-
-dnl Check if we have working C++ explicit template destructors
-dnl Thanks to Nanbor Wang <nanbor@cs.wustl.edu> for providing this test.
-ACE_CACHE_CHECK(for working C++ explicit template destructors,
- ace_cv_feature_working_explicit_des,
- [
- AC_TRY_COMPILE([
-#include <iostream.h>
-
-class dyn
-{
- public:
- dyn () { cout << "dyn" << endl; }
- ~dyn () { cout << "~dyn" << endl; }
-};
-
-template <class T>
-class Base
-{
- public:
- Base () { cout << "Base" << endl; }
- virtual void f (void) { cout << "Base::f" << endl; }
- ~Base () { cout << "~Base" << endl; }
-};
-
-template <class T>
-class Derived
-{
- public:
- Derived ()
- {
- x_ = new Base<T> (); cout << "Derived" << endl ;
- }
- virtual void f (void) { cout << "Derived::f" << endl; }
- ~Derived () { x_->~Base (); cout << "~Derived" << endl; }
- private:
- Base<T> *x_;
- T t_;
-};
- ],
- [
- Derived<dyn> *x = new Derived<dyn> ();
-
- x->f ();
-
- delete x;
- return 0;
- ],
- [
- ace_cv_feature_working_explicit_des=yes
- ],
- [
- ace_cv_feature_working_explicit_des=no
- ])
- ], AC_DEFINE(ACE_HAS_WORKING_EXPLICIT_TEMPLATE_DESTRUCTOR),)
-
-dnl Check for working C++ conversions
-ACE_CACHE_CHECK(for working C++ conversions,
- ace_cv_feature_cxx_working_conversions,
- [
- AC_TRY_COMPILE([
- template <class T>
- class Foo
- {
- public:
- Foo (void) { ace_ptr = 0; }
- operator T * (void) { return ace_ptr; }
-
- private:
- T * ace_ptr;
- };
- ],
- [
- Foo<char> Bar;
-
- Foo<char> * Bar_ptr = &Bar;
-
- char * p = Bar_ptr->operator char * ();
- ],
- [
- ace_cv_feature_cxx_working_conversions=yes
- ],
- [
- ace_cv_feature_cxx_working_conversions=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_CONVERSIONS))
-
-dnl Check for C++ namespace support
-ACE_CACHE_CHECK(for C++ namespace support,
- ace_cv_feature_cxx_namespaces,
- [
- AC_TRY_COMPILE([
- namespace ACE
- {
- int x;
- }
- ],
- [
- ACE::x = 0;
- ],
- [
- ace_cv_feature_cxx_namespaces=yes
- ],
- [
- ace_cv_feature_cxx_namespaces=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_NAMESPACES))
-
-dnl Check for C++ standard namespace
-ACE_CACHE_CHECK(for C++ standard namespace,
- ace_cv_feature_posix_uses_std_namespace,[
- AC_TRY_COMPILE([
-#include <iostream.h>
- ],
- [
- std::cout << "FOO" << endl;
- ],
- [
- ace_cv_feature_posix_uses_std_namespace=yes
- ],
- [
- ace_cv_feature_posix_uses_std_namespace=no
- ])
- ], AC_DEFINE(ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB),)
-
-dnl Check for C++ "using" keyword support
-ACE_CACHE_CHECK(for C++ \"using\" keyword support,
- ace_cv_feature_cxx_using_keyword,
- [
- AC_TRY_COMPILE([
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
-# include <iostream.h>
-#elif !defined (ACE_HAS_BROKEN_NAMESPACES)
- namespace ACE
- {
- int x;
- }
-#endif
- ],
- [
-#if defined (ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB)
- using namespace std;
-
- cout << "FOO" << endl;
-#elif !defined (ACE_HAS_BROKEN_NAMESPACES)
- using namespace ACE;
-
- x++;
-#else
-# error Namespaces are not supported on this platform.
-Throw in some extraneous text since some compilers are stupid
-enough to interpret "#error" as a warning. Go figure. :(
-This extraneous text should force an error.
-#endif
- ],
- [
- ace_cv_feature_cxx_using_keyword=yes
- ],
- [
- ace_cv_feature_cxx_using_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_USING_KEYWORD),)
-
-dnl Check for new style C++ include file support
-ACE_CACHE_CHECK(for new style C++ include file support,
- ace_cv_lib_posix_standard_includes,[
- ace_cv_lib_posix_standard_includes=no
- if test "$ace_cv_feature_posix_uses_std_namespace" = yes; then
- AC_TRY_COMPILE(
- [
-#include <string>
- ],
- [
- std::string str;
- ],
- ace_cv_lib_posix_standard_includes=yes)
- else
- AC_TRY_COMPILE(
- [
-#include <string>
- ],
- [
- string str;
- ],
- ace_cv_lib_posix_standard_includes=yes)
- fi
- ],
- [
- AC_DEFINE(ACE_HAS_STDCPP_STL_INCLUDES)
- AC_DEFINE(ACE_HAS_STRING_CLASS)
- ],)
-
-dnl Check whether platform supports the standard C++ library
-dnl TODO: For now, check whether headers <new>, <iomanip>
-dnl and <memory> exist; is there a better way?
-if test "$ac_cv_header_new" = yes &&
- test "$ac_cv_header_iomanip" = yes &&
- test "$ac_cv_header_memory" = yes; then
-
- dnl Check for auto_ptr class
- ACE_CACHE_CHECK(for C++ auto_ptr class,
- ace_cv_lib_auto_ptr_class,
- [
- AC_TRY_COMPILE(
- [
-#include <memory>
- ],
- [
- int *foo = new int;
-
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- std::auto_ptr<int> safe (foo);
-#else
- auto_ptr<Foo> safe (foo);
-#endif
- foo = safe.release ();
-
- delete foo;
- ],
- [
- ace_cv_lib_auto_ptr_class=yes
- ],
- [
- ace_cv_lib_auto_ptr_class=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_STANDARD_CPP_LIBRARY)
- ],
- [
- AC_DEFINE(ACE_LACKS_AUTO_PTR)
- ])
-fi
-
-if test $ace_cv_lib_auto_ptr_class=yes; then
- dnl Check for auto_ptr reset method
- ACE_CACHE_CHECK(for C++ auto_ptr reset method,
- ace_cv_lib_auto_ptr_reset,
- [
- AC_TRY_COMPILE(
- [
-#include <memory>
- ],
- [
- int *foo = new int;
-
-#ifdef ACE_USES_STD_NAMESPACE_FOR_STDCPP_LIB
- std::auto_ptr<int> safe (foo);
-#else
- auto_ptr<Foo> safe (foo);
-#endif
- int *bar = new int;
-
- safe.reset (bar);
-
- foo = safe.release ();
- ],
- [
- ace_cv_lib_auto_ptr_reset=yes
- ],
- [
- ace_cv_lib_auto_ptr_reset=no
- ])
- ],, AC_DEFINE(ACE_AUTO_PTR_LACKS_RESET))
-fi dnl test $ace_cv_lib_auto_ptr_class=yes
-
-dnl Check for ANSI C++ cast support
-ACE_CACHE_CHECK(for ANSI C++ cast support,
- ace_cv_lib_posix_standard_casts,[
- ACE_CONVERT_WARNINGS_TO_ERRORS([
- AC_TRY_COMPILE(
- [/* No headers */],
- [
- class B { public: int b_; virtual int b() const = 0; };
- class D : public B { virtual int b() const { return b_; } };
-
- void* vp = 0;
- char* cp = 0;
- float f = 1.0;
- int i = 0;
- int* ip = 0;
- const int* jp = 0;
-
- i = static_cast<int> (f);
- ip = const_cast<int*> (jp);
- cp = reinterpret_cast<char*> (vp);
-
- B* bp = new D;
- D* dp = dynamic_cast<D*> (bp);
- delete bp;
- ],
- [
- ace_cv_lib_posix_standard_casts=yes
- AC_CACHE_VAL(ace_cv_lib_rtti, ace_cv_lib_rtti=yes)
- ],
- [
- AC_TRY_COMPILE(
- [/* No headers */],
- [
- class B { public: int b_; virtual int b() const = 0; };
- class D : public B { virtual int b() const { return b_; } };
-
- void* vp = 0;
- char* cp = 0;
- float f = 1.0;
- int i = 0;
- int* ip = 0;
- const int* jp = 0;
-
- i = static_cast<int> (f);
- ip = const_cast<int*> (jp);
- cp = reinterpret_cast<char*> (vp);
- ],
- [
- ace_cv_lib_posix_standard_casts=yes
- AC_CACHE_VAL(ace_cv_lib_rtti, ace_cv_lib_rtti=no)
- ],
- [
- ace_cv_lib_posix_standard_casts=no
- ])
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_ANSI_CASTS)
- if test "$ace_cv_lib_rtti" != yes; then
- AC_DEFINE(ACE_LACKS_RTTI)
- fi
- ],)
-
-dnl Check for explicit C++ constructor support
-ACE_CACHE_CHECK(for explicit C++ constructor support,
- ace_cv_feature_explicit_constructor,
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- explicit Foo (int i) { this->val_ = i; }
- private:
- int val_;
-};
- ],
- [
-Foo bar = 'a'; // error: no implicit char->Foo conversion
- ],
- [
-dnl The above test *should* fail!
- ace_cv_feature_explicit_constructor=no
- ],
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- explicit Foo (int i) { this->val_ = i; }
- private:
- int val_;
-};
- ],
- [
-Foo bar (5);
- ],
- [
- ace_cv_feature_explicit_constructor=yes
- ],
- [
- ace_cv_feature_explicit_constructor=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_EXPLICIT_KEYWORD),)
-
-dnl Check for C++ mutable keyword
-ACE_CACHE_CHECK(for C++ mutable keyword,
- ace_cv_feature_cxx_mutable_keyword,
- [
- AC_TRY_COMPILE(
- [
-class Foo
-{
- public:
- Foo (void) : val_ (0) {}
-
- mutable int val_;
-};
- ],
- [
-const Foo bar;
-
-bar.val_ = 3; // mutable declaration should allow this to be modified
- ],
- [
- ace_cv_feature_cxx_mutable_keyword=yes
- ],
- [
- ace_cv_feature_cxx_mutable_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_MUTABLE_KEYWORD),)
-
-dnl Check if platform supports typename keyword
-ACE_CACHE_CHECK(for C++ typename keyword,
- ace_cv_feature_posix_typename_keyword,[
- AC_TRY_COMPILE([
- class Bar
- {
- public:
- typedef int Y;
- Bar(int bar) : bar_(bar) {}
- private:
- int bar_;
- };
-
- template <class T>
- class Foo
- {
- public:
- typedef typename T::Y Y;
- Foo(T* foo) : foo_(foo) {}
- void bilbo(typename T::Y y);
- private:
- T* foo_;
- };
-
- template <class T>
- void Foo<T>::bilbo(typename T::Y y)
- {
- }
- ],
- [
- Bar bar(15);
- Foo<Bar> foo(&bar);
- foo.bilbo(10);
- ],
- [
- ace_cv_feature_posix_typename_keyword=yes
- ],
- [
- ace_cv_feature_posix_typename_keyword=no
- ])
- ], AC_DEFINE(ACE_HAS_TYPENAME_KEYWORD),)
-
-dnl Check if platform supports placement new operator
-ACE_CACHE_CHECK(for C++ placement new operator,
- ace_cv_feature_placement_new,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-class foo
-{
-public:
- void *operator new (size_t, void *p) { return p; }
-};
- ],
- [
-int *x = 0;
-foo *f = new (x) foo;
- ],
- [
- ace_cv_feature_placement_new=yes
- ],
- [
- ace_cv_feature_placement_new=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_NEW))
-
-dnl Check if platform supports placement delete operator
-ACE_CACHE_CHECK(for C++ placement delete operator,
- ace_cv_feature_placement_delete,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-class foo
-{
-public:
- void *operator new (size_t, void *p) { return p; }
- void operator delete (void *p, void *) {}
-};
- ],
- [
-int *x = 0;
-foo *f = new (x) foo;
-
-// delete f; // Don't call delete for this test!
- ],
- [
- ace_cv_feature_placement_delete=yes
- ],
- [
- ace_cv_feature_placement_delete=no
- ])
- ], , AC_DEFINE(ACE_LACKS_PLACEMENT_OPERATOR_DELETE))
-
-
-dnl Check if const char * can be rvalue in conditional operator
-ACE_CACHE_CHECK(if const char * can be rvalue in conditional operator,
- ace_cv_feature_conditional_str_cast,
- [
- AC_TRY_COMPILE(,
- [
- const char * foo = 0;
- const char * bar = 0;
-
- const char * ace = ((1 < 2) ? foo : bar);
- ],
- [
- ace_cv_feature_conditional_str_cast=yes
- ],
- [
- ace_cv_feature_conditional_str_cast=no
- ])
- ], , AC_DEFINE(ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS))
-
-dnl Check if templates require source on platform
-dnl FIXME: This test may be broken.
-ACE_CACHE_CHECK(if templates require source,
- ace_cv_feature_templates_require_source,
- [
- dnl Create the common header file
- cat > ace_test.h <<EOF
-#ifndef FOO_H
-#define FOO_H
-template <class T>
-class Foo
-{
- public:
- Foo (T val);
- private:
- T value_;
-};
-
-template <class T>
-class Bar
-{
- public:
- Bar (Foo<T> *);
- private:
- Foo<T> *foo_ptr;
-};
-#endif /* FOO_H */
-EOF
-
- dnl Create template source test file
- cat > ace_test.$ac_ext <<EOF
-#include "ace_test.h"
-#ifndef FOO_CXX
-#define FOO_CXX
-template <class T>
-Foo<T>::Foo (T val)
- : value_ (val)
-{
- // Nothing else to do.
-}
-
-template <class T>
-Bar<T>::Bar (Foo<T> *val)
- : foo_ptr (val)
-{
- // Nothing else to do.
-}
-#endif /* FOO_CXX */
-EOF
-
- dnl Add the ACE-specific compiler flags to the compiler flags for
- dnl the duration of this test.
- ace_cxx_template_save_CXXFLAGS="$CXXFLAGS"
- ace_cxx_template_save_CPPFLAGS="$CPPFLAGS"
- ace_cxx_template_save_LDFLAGS="$LDFLAGS"
- CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"
- CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
- LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl First try without explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
- ],
- [
-Foo<int> foo (15);
-
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN OUTER REQUIRE SOURCE #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL([ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL([ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_pragma_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl explicit template instantiation works.
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL([ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN INNER REQUIRE SOURCE #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_explicit_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl pragma template instantiation works.
-
- dnl Now try with pragma template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is not required.
- ace_cv_feature_templates_require_source=no
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL(
- [ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Don't set
- dnl ace_cv_feature_explicit_template_instantiation
- dnl to "no" here. It should only be set to "no" if
- dnl pragma template instantiation works.
-
- dnl Now try including the template source.
- AC_TRY_LINK([
-#include "ace_test.h"
-#include "ace_test.$ac_ext"
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_source=yes
-
- dnl Template source does not require pragma.
- AC_CACHE_VAL(
- [ace_cv_feature_templates_require_pragma],
- [ace_cv_feature_templates_require_pragma=no])
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl If we get here, then we have no idea what is needed!
- ace_cv_feature_templates_require_source=no
- ])
- ])
-dnl END INNER REQUIRE SOURCE #########################################
- ])
- ])
-dnl END OUTER REQUIRE SOURCE #########################################
- ])
- ])
-
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Remove the test additional test files.
- rm -f ace_test*
-
- dnl Restore the compiler flags
- CXXFLAGS="$ace_cxx_template_save_CXXFLAGS"
- CPPFLAGS="$ace_cxx_template_save_CPPFLAGS"
- LDFLAGS="$ace_cxx_template_save_LDFLAGS"
- ],
- [
- AC_DEFINE(ACE_TEMPLATES_REQUIRE_SOURCE)
- ],
- [
- dnl Check if templates require pragma.
- ACE_CACHE_CHECK([if templates require pragma],
- [ace_cv_feature_templates_require_pragma],
- [
- dnl Create the common header file
- cat > ace_test.h <<EOF
-#ifndef FOO_H
-#define FOO_H
-template <class T>
-class Foo
-{
- public:
- Foo (T val);
- private:
- T value_;
-};
-
-template <class T>
-class Bar
-{
- public:
- Bar (Foo<T> *);
- private:
- Foo<T> *foo_ptr;
-};
-#endif /* FOO_H */
-EOF
-
- dnl Create template source test file
- cat > ace_test.$ac_ext <<EOF
-#include "ace_test.h"
-#ifndef FOO_CXX
-#define FOO_CXX
-template <class T>
-Foo<T>::Foo (T val)
- : value_ (val)
-{
- // Nothing else to do.
-}
-
-template <class T>
-Bar<T>::Bar (Foo<T> *val)
- : foo_ptr (val)
-{
- // Nothing else to do.
-}
-#endif /* FOO_CXX */
-EOF
-
- dnl Add the ACE-specific compiler flags to the compiler flags for
- dnl the duration of this test.
- ace_cxx_template_save_CXXFLAGS="$CXXFLAGS"
- ace_cxx_template_save_CPPFLAGS="$CPPFLAGS"
- ace_cxx_template_save_LDFLAGS="$LDFLAGS"
- CXXFLAGS="$ACE_CXXFLAGS $CXXFLAGS"
- CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
- LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
- dnl Remove any template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl We already know that the simplest case doesn't work so go
- dnl straight to the "require pragma" test.
-
- dnl Now try including the template pragma.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template source is required!
- ace_cv_feature_templates_require_pragma=yes
- ],
- [
-dnl BEGIN OUTER REQUIRE PRAGMA #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with explicit template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
-
-template class Foo<int>;
-template class Bar<char>;
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template pragma is required!
- ace_cv_feature_templates_require_pragma=yes
-
- dnl Explicit template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=yes])
-
- dnl Pragma template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=no])
- ],
- [
-dnl BEGIN INNER REQUIRE PRAGMA #########################################
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Now try with pragma template instantiation.
- AC_TRY_LINK([
-#include "ace_test.h"
-
-#pragma implementation ("ace_test.$ac_ext")
-
-#pragma instantiate Foo<int>
-#pragma instantiate Bar<char>
- ],
- [
-Foo<int> foo (15);
-Bar<char> bar (0);
- ],
- [
- dnl Template pragma is required!
- ace_cv_feature_templates_require_pragma=yes
-
- dnl Explicit template instantiation is not required.
- AC_CACHE_VAL(
- [ace_cv_feature_explicit_template_instantiation],
- [ace_cv_feature_explicit_template_instantiation=no])
-
- dnl Pragma template instantiation is required.
- AC_CACHE_VAL(
- [ace_cv_feature_pragma_template_instantiation],
- [ace_cv_feature_pragma_template_instantiation=yes])
- ],
- [
- dnl If we get here, then we have no idea what is needed!
- ace_cv_feature_templates_require_pragma=no
- ])
-dnl END INNER REQUIRE PRAGMA #########################################
- ])
-dnl END OUTER REQUIRE PRAGMA #########################################
- ])
-
- dnl Remove any generated template repositories.
- rm -rf Templates.DB SunWS_cache ptrepository *.rpo
-
- dnl Remove the additional test files.
- rm -f ace_test*
-
- dnl Restore the compiler flags
- CXXFLAGS="$ace_cxx_template_save_CXXFLAGS"
- CPPFLAGS="$ace_cxx_template_save_CPPFLAGS"
- LDFLAGS="$ace_cxx_template_save_LDFLAGS"
- ],
- [
- AC_DEFINE(ACE_TEMPLATES_REQUIRE_PRAGMA)
- ],
- [
- dnl Do nothing.
- ])
- ])
-
-ACE_CACHE_CHECK([if explicit template instantiation is needed],
- [ace_cv_feature_explicit_template_instantiation],
- [
- AC_MSG_ERROR([
-Bug in configure script, check for need of explicit template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION)
- ],
- [
- ACE_CACHE_CHECK([if pragma template instantiation is needed],
- [ace_cv_feature_pragma_template_instantiation],
- [
- AC_MSG_ERROR([
-Bug in configure script, check for need of pragma template
-instantiation should have occurred during check for need of template
-source. Please e-mail the maintainer of this configure script:
- $ACE_CONFIGURE_MAINTAINER
-this message.
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA)
- ],
- [
- dnl Do nothing
- ])
- ])
-
-
-dnl Check if platform supports template specialization
-ACE_CACHE_CHECK(for template specialization,
- ace_cv_feature_cxx_template_specialization,[
- AC_TRY_COMPILE(
- [
- template <class T>
- class Foo
- {
- public:
- Foo(T bar) : bar_(bar) {};
- private:
- T bar_;
- };
-
- class Foo<int>
- {
- public:
- Foo(int bar) : bar_(bar + 1) {};
- private:
- int bar_;
- };
- ],
- [
- Foo<int> foo(11);
- ],
- [
- ace_cv_feature_cxx_template_specialization=yes
- ],
- [
- ace_cv_feature_cxx_template_specialization=no
- ])
- ], AC_DEFINE(ACE_HAS_TEMPLATE_SPECIALIZATION),)
-
-dnl Check if platform supports *standard *template specialization
-ACE_CACHE_CHECK(for standard template specialization,
- ace_cv_feature_cxx_std_template_specialization,[
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
- ],
- [
-Vector<int> vi;
-Vector<void *> vpv;
- ],
- [
- ace_cv_feature_cxx_std_template_specialization=yes
- ],
- [
- ace_cv_feature_std_cxx_template_specialization=no
- ])
- ], AC_DEFINE(ACE_HAS_STD_TEMPLATE_SPECIALIZATION),)
-
-if test "$ace_cv_feature_cxx_std_template_specialization" = yes; then
-
-dnl Check if platform needs *standard* template method specialization
-ACE_CACHE_CHECK(if platform needs standard template method specialization,
- ace_cv_feature_cxx_std_template_method_specialization,[
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
-
-void *&
-Vector<void *>::operator[] (int i)
-{
- return p[i];
-}
- ],
- [
- Vector <void *> vpv;
- ],
- [
-dnl template method specialization is *not* needed
- ace_cv_feature_cxx_std_template_method_specialization=no
- ],
- [
- AC_TRY_COMPILE(
- [
-// Some compilers have a hard time with this test since the syntax is
-// too "new" for them.
-
-// general vector type
-template<class T>
-class Vector
-{
-public:
- Vector (void);
- Vector (int);
-
- T& elem (int i) { return v[i]; }
- T& operator[] (int i);
-private:
- T* v;
- int sz;
-};
-
-// void * specialization
-template<>
-class Vector<void *>
-{
-public:
- Vector (void);
- Vector (int);
-
- void*& elem (int i) { return p[i]; }
- void*& operator[] (int i);
-private:
- void** p;
- int sz;
-};
-
-template <>
-void *&
-Vector<void *>::operator[] (int i)
-{
- return p[i];
-}
- ],
- [
- Vector<void *> vpv;
- ],
- [
-dnl template method specialization is needed
- ace_cv_feature_cxx_std_template_method_specialization=yes
- ],
- [
-dnl template method specialization is *not* needed
- ace_cv_feature_cxx_std_template_method_specialization=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_STD_TEMPLATE_METHOD_SPECIALIZATION),)
-fi dnl test $ace_cv_feature_cxx_std_template_specialization = yes
-
-dnl Check if platform supports template typedefs
-ACE_CACHE_CHECK(for template typedefs,
- ace_cv_feature_posix_template_typedefs,[
- AC_TRY_COMPILE([
-#if defined (ACE_HAS_TYPENAME_KEYWORD)
-#define TYPENAME typename
-#else
-#define TYPENAME
-#endif
-
-class Bar
-{
-public:
- typedef int Y;
- Bar(int bar) : bar_(bar) {}
- int value() const { return bar_; }
-private:
- int bar_;
-};
-
-template <class T>
-class Foo
-{
-public:
- typedef TYPENAME T::Y Y;
- Foo(T* foo) : foo_(foo) {}
- void print(Y);
-private:
- T* foo_;
-};
-
-template <class T>
-void Foo<T>::print(TYPENAME T::Y)
-{
-}
- ],
- [
-Bar bar(15);
-Foo<Bar> foo(&bar);
-foo.print(11);
- ],
- [
- ace_cv_feature_posix_template_typedefs=yes
- ],
- [
- ace_cv_feature_posix_template_typedefs=no
- ])
- ], AC_DEFINE(ACE_HAS_TEMPLATE_TYPEDEFS),)
-
-dnl Check if platform supports static data member templates
-ACE_CACHE_CHECK(for static data member templates,
- ace_cv_feature_posix_static_data_member_templates,[
- AC_TRY_COMPILE([
-template <class T>
-class Foo
-{
-public:
- static T* sdm;
-};
-
-template <class T> T* Foo<T>::sdm = 0;
- ],
- [
- /* No body */
- ],
- [
- ace_cv_feature_posix_static_data_member_templates=yes
- ],
- [
- ace_cv_feature_posix_static_data_member_templates=no
- ])
- ], ,AC_DEFINE(ACE_LACKS_STATIC_DATA_MEMBER_TEMPLATES))
-
-dnl Check if compiler needs definitions for hidden functions
-ACE_CACHE_CHECK(if definition is needed for hidden functions,
- ace_cv_feature_need_func_def,
- [
- AC_TRY_LINK(
- [
- class Foo
- {
- public:
- Foo (void) { a_ = 0; }
- private:
- Foo (const Foo &);
- void operator= (const Foo &);
-
- int a_;
- };
- ],
- [
- Foo Bar;
- ],
- [
- ace_cv_feature_need_func_def=no
- ],
- [
- AC_TRY_LINK(
- [
- class Foo
- {
- public:
- Foo (void) { a_ = 0; }
- private:
- Foo (const Foo &);
- const Foo & operator= (const Foo &);
-
- int a_;
- };
-
- Foo::Foo (const Foo &)
- {
- a_ = 0;
- }
-
- const Foo &
- Foo::operator= (const Foo &)
- {
- a_ = 0;
-
- return *this;
- }
- ],
- [
- Foo Bar;
- ],
- [
- ace_cv_feature_need_func_def=yes
- ],
- [
- dnl If we get here then we don't know what is needed!
- ace_cv_feature_need_func_def=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_NEEDS_FUNC_DEFINITIONS)
- ],)
-
-dnl Check if platform supports C++ exceptions
-if test "$ace_user_enable_exceptions" = yes; then
- ACE_CACHE_CHECK(for C++ exceptions,
- ace_cv_feature_posix_exceptions,[
- AC_TRY_COMPILE(,
- [
- int ret = 0;
- class ACE {};
- try
- {
- throw ACE();
- }
- catch (ACE)
- {
- ret = 1;
- }
- ],
- [
- ace_cv_feature_posix_exceptions=yes
- ],
- [
- ace_cv_feature_posix_exceptions=no
- ])
- ], AC_DEFINE(ACE_HAS_EXCEPTIONS), ace_user_enable_exceptions=no)
-
-fi dnl test "$ace_user_enable_exceptions" = yes
-
-dnl Check if we need a non-static object manager
-dnl TODO / FIXME
-dnl ACE_CACHE_CHECK(if we need a non-static object manager,
-dnl ace_cv_feature_nonstatic_object_manager,[
-dnl ace_cv_feature_nonstatic_object_manager=yes
- dnl TODO: Should we check for this thing (and HOW), or
- dnl should it be the user's choice?
- dnl
- dnl For now, we will leave it as a user's choice.
- dnl -Ossama
-dnl ],
-dnl [
- dnl Don't define anything until we have a test for this.
- dnl AC_DEFINE(ACE_HAS_NONSTATIC_OBJECT_MANAGER)
-dnl ],)
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl
-dnl SECTION 10: checks for library functions
-dnl
-
-AC_FUNC_ALLOCA
-if test "$ac_cv_header_alloca_h" = yes; then
- AC_DEFINE(ACE_HAS_ALLOCA_H)
-fi
-if test "$ac_cv_func_alloca_works" = yes; then
- AC_DEFINE(ACE_HAS_ALLOCA)
-fi
-
-dnl ACE should really have something for both the sys/mman.h header
-dnl and the mmap function since we need sys/mman.h for functions like
-dnl mprotect and msync, but don't want to use mmap if it doesn't work.
-dnl For now, we just check for the sys/mman.h header earlier in this
-dnl configure script.
-dnl
-dnl AC_FUNC_MMAP
-dnl if test "$ac_cv_func_mmap_fixed_mapped" = no; then
-dnl Even if we have mmap, do not use if broken!
-dnl AC_DEFINE(ACE_LACKS_MMAP)
-dnl fi
-
-dnl Check if closedir() returns a meaningful value
-AC_FUNC_CLOSEDIR_VOID
-
-dnl Check for PWD functions
-AC_CHECK_FUNC(getpwnam,,) dnl
-AC_CHECK_FUNC(setpwent,,) dnl
-AC_CHECK_FUNC(endpwent,,) dnl
-AC_CHECK_FUNC(getpwent,,) dnl
-AC_CHECK_FUNC(getpwuid,,) dnl
-
-if test "$ac_cv_func_getpwnam" != yes ||
- test "$ac_cv_func_setpwent" != yes ||
- test "$ac_cv_func_endpwent" != yes ||
- test "$ac_cv_func_getpwent" != yes ||
- test "$ac_cv_func_getpwuid" != yes; then
- AC_DEFINE(ACE_LACKS_PWD_FUNCTIONS) dnl
-else
- dnl The password file related functions above are required for ACE's
- dnl alternate implementation.
-
- ACE_CONVERT_WARNINGS_TO_ERRORS([
- dnl Check for functions necessary for ACE's alternate implementation
- dnl of the now obsolete cuserid() function.
- ACE_CACHE_CHECK([checking if ACE cuserid implementation should be used],
- [ace_cv_lib_use_alt_cuserid],
- [
- AC_TRY_LINK(
- [
-/* Undefine _XOPEN_SOURCE since it may make the cuserid() prototype
- visible. ACE should not rely on such feature test macros. */
-#undef _XOPEN_SOURCE
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#else
-# error No unistd.h header. Need header where cuserid() is located.
-#endif /* ACE_LACKS_UNISTD_H */
- ],
- [
- char * foo = cuserid ((char *)0);
- ],
- [
- dnl If successful then use the system cuserid() implementation,
- dnl despite the fact that ACE's implementation may be safer.
- ace_cv_lib_use_alt_cuserid=no
- ],
- [
- AC_TRY_LINK(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#undef _XOPEN_SOURCE
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#else
-# error No unistd.h header. Need header where geteuid() is located.
-#endif
- ],
- [
- uid_t foo = geteuid ();
- ],
- [
- dnl All of the functions necessary for ACE's cuserid()
- dnl implementation exist.
- ace_cv_lib_use_alt_cuserid=yes
- ],
- [
- dnl If we get here, we're hosed!
- ace_cv_lib_use_alt_cuserid=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_ALT_CUSERID)
- ],)
- ])
-fi
-
-
-
-dnl Check for `strftime' in the `intl' library, for SCO UNIX
-AC_FUNC_STRFTIME
-
-case "$target" in
- *win32*)
- AC_CHECK_FUNC(CancelIO, dnl
- AC_DEFINE(ACE_HAS_CANCEL_IO),)
-
- AC_CHECK_FUNC(SignalObjectAndWait, dnl
- AC_DEFINE(ACE_HAS_SIGNAL_OBJECT_AND_WAIT),)
-
- AC_CHECK_FUNC(TryEnterCriticalSection, dnl
- AC_DEFINE(ACE_HAS_WIN32_TRYLOCK),)
- ;;
- *)
- ;;
-esac
-
-AC_CHECK_FUNC(access, dnl
- ,
- AC_DEFINE(ACE_LACKS_ACCESS))
-
-AC_CHECK_FUNC(bsearch, dnl
- ,
- AC_DEFINE(ACE_LACKS_BSEARCH))
-
-AC_CHECK_FUNC(qsort, dnl
- ,
- AC_DEFINE(ACE_LACKS_QSORT))
-
-dnl ACE uses execv, execvp and execve, so we don't bother to check
-dnl for the others (e.g. execl, execlp, execle)
-AC_CHECK_FUNCS(execv execvp execve, dnl
- ,
- AC_DEFINE(ACE_LACKS_EXEC))
-
-AC_CHECK_FUNC(fcntl, dnl
- ,
- AC_DEFINE(ACE_LACKS_FCNTL))
-
-AC_CHECK_FUNC(fsync, dnl
- ,
- AC_DEFINE(ACE_LACKS_FSYNC))
-
-dnl TODO: Right now we only check for the getmsg() function when checking
-dnl for ACE_HAS_STREAM_PIPES. Is this enough?
-AC_CHECK_FUNC(getmsg, dnl
- AC_DEFINE(ACE_HAS_STREAM_PIPES),)
-
-AC_CHECK_FUNC(gethostbyaddr,,) dnl
-
-AC_CHECK_FUNC(difftime, dnl
- ,
- AC_DEFINE(ACE_LACKS_DIFFTIME))
-
-dnl Check for 64 bit llseek() or lseek64()
-ACE_CHECK_LSEEK64
-
-AC_CHECK_FUNC(bind, dnl
- [
- ACE_CACHE_CHECK(if bind() will select the port if it is zero,
- ace_cv_have_wildcard_bind,
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <string.h> /* for memset() */
-
- int main () {
-
- int sockfd = socket(AF_INET, SOCK_STREAM, 0);
-
- sockaddr_in serv_addr;
-
- (void) memset ((void *) &serv_addr, 0, sizeof(serv_addr));
-
- serv_addr.sin_family = AF_INET;
- serv_addr.sin_addr.s_addr = htonl(INADDR_ANY);
- serv_addr.sin_port = 0;
-
- return bind (sockfd, (struct sockaddr *) &serv_addr,
- sizeof(serv_addr));
- }
- ],
- [
- ace_cv_have_wildcard_bind=yes
- ],
- [
- ace_cv_have_wildcard_bind=no
- ],
- [
- dnl action if cross-compiling
- ace_cv_have_wildcard_bind=yes
- ])
- ],, AC_DEFINE(ACE_LACKS_WILDCARD_BIND))
- ],)
-
-AC_CHECK_FUNC(poll, dnl
- [
- ACE_CACHE_CHECK(if poll is broken,
- ace_cv_poll_is_broken,
- [
- AC_TRY_RUN(
- [
-#include <poll.h>
-#include <time.h>
-
-#ifdef ACE_LACKS_SYSTIME_H
-# include <sys/time.h>
-#endif
-
- int main () {
-
- int timeout = 2000; /* 2000 milliseconds */
- int timeout_arg = timeout;
- /* poll() modifies timeout argument on some platforms */
-
- int result = 0;
-
- time_t *t = 0;
-
- time_t time1 = time(t);
-
- result = poll(0, 0, timeout_arg);
-
- time_t time2 = time(t);
- time_t diff = time2 - time1;
-
- /* If (diff * 1000) < timeout then poll() is broken! */
- if (result >= 0)
- return (((diff * 1000) < timeout) ? 1 : 0);
- else
- return 1; /* We had a problem with poll() so we don't
- know what really happened. */
- }
- ],
- [
- ace_cv_poll_is_broken=no
- ],
- [
- ace_cv_poll_is_broken=yes
- ],
- [
- dnl action if cross-compiling
- ace_cv_poll_is_broken=no
- ])
- ], AC_DEFINE(ACE_POLL_IS_BROKEN),)
- ],)
-
-AC_CHECK_FUNC(gethrtime, dnl
- [
- ACE_CHECK_TYPE(hrtime_t, sys/time.h, AC_DEFINE(ACE_HAS_HI_RES_TIMER),)
- ],)
-
-AC_CHECK_FUNC(pread, dnl
- AC_CHECK_FUNC(pwrite,
- [
- AC_DEFINE(ACE_HAS_P_READ_WRITE)
- dnl Check if _XOPEN_SOURCE=500 macro is needed to make the pread() and
- dnl pwrite() prototypes visible.
- ACE_CACHE_CHECK(for pread prototype,
- ace_cv_lib_has_pread_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+pread], unistd.h,
- [
- ace_cv_lib_has_pread_prototype=yes
- ],
- [
- ace_cv_lib_has_pread_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_PREAD_PROTOTYPE))
- ],),)
-
-AC_CHECK_FUNC(readv, , AC_DEFINE(ACE_LACKS_READV)) dnl
-
-AC_CHECK_FUNC(writev, , AC_DEFINE(ACE_LACKS_WRITEV)) dnl
-
-AC_CHECK_FUNC(set_t_errno, AC_DEFINE(ACE_HAS_SET_T_ERRNO),) dnl
-
-AC_CHECK_FUNC(sigsuspend, dnl
- AC_DEFINE(ACE_HAS_SIGSUSPEND),)
-
-AC_CHECK_FUNC(sigtimedwait, dnl
- AC_DEFINE(ACE_HAS_SIGTIMEDWAIT),)
-
-AC_CHECK_FUNC(socketpair, dnl
- ,
- AC_DEFINE(ACE_LACKS_SOCKETPAIR))
-
-AC_CHECK_FUNC(strcasecmp, dnl
- ,
- AC_DEFINE(ACE_LACKS_STRCASECMP))
-
-AC_CHECK_FUNC(strdup, dnl
- ,
- AC_DEFINE(ACE_HAS_STRDUP_EMULATION))
-
-AC_CHECK_FUNC(strrchr, dnl
- ,
- AC_DEFINE(ACE_LACKS_STRRCHR))
-
-AC_CHECK_FUNC(strptime, dnl
- [
- AC_DEFINE(ACE_HAS_STRPTIME)
- dnl Check if _XOPEN_SOURCE macro is needed to make the strptime()
- dnl prototype visible.
- ACE_CACHE_CHECK(for strptime prototype,
- ace_cv_lib_has_strptime_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+strptime], time.h,
- [
- ace_cv_lib_has_strptime_prototype=yes
- ],
- [
- ace_cv_lib_has_strptime_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_STRPTIME_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_NATIVE_STRPTIME)
- ])
-
-AC_CHECK_FUNC(memchr, dnl
- AC_DEFINE(ACE_HAS_MEMCHR),)
-
-if test "$ace_cv_type_wchar_t" = yes; then
- AC_CHECK_FUNC(wcslen, dnl
- AC_DEFINE(ACE_HAS_XPG4_MULTIBYTE_CHAR),)
-fi
-
-AC_CHECK_FUNC(syscall, dnl
- ,
- AC_DEFINE(ACE_LACKS_SYSCALL))
-
-AC_CHECK_FUNC(ualarm, dnl
- AC_DEFINE(ACE_HAS_UALARM),)
-
-AC_CHECK_FUNC(alarm,,) dnl
-AC_CHECK_FUNC(signal,,) dnl
-
-if test "$ac_cv_func_alarm" != yes &&
- test "$ac_cv_func_signal" != yes; then
- AC_DEFINE(ACE_LACKS_UNIX_SIGNALS)
-fi
-
-AC_CHECK_FUNC(fork, dnl
- ,
- AC_DEFINE(ACE_LACKS_FORK))
-
-AC_CHECK_FUNC(getrlimit, dnl
- [
- AC_CHECK_FUNC(setrlimit,
- ,
- AC_DEFINE(ACE_LACKS_RLIMIT))
- ],
- [
- AC_DEFINE(ACE_LACKS_RLIMIT)
- ])
-
-AC_CHECK_FUNC(sysinfo, dnl
- [
- if test "$ac_cv_header_sys_systeminfo_h" = yes; then
- AC_DEFINE(ACE_HAS_SYSINFO)
- fi
- ],)
-
-AC_CHECK_FUNC(strerror, dnl
- AC_DEFINE(ACE_HAS_STRERROR),)
-
-AC_CHECK_FUNC(lstat, dnl
- ,
- AC_DEFINE(ACE_LACKS_LSTAT))
-
-AC_CHECK_FUNC(readlink, dnl
- ,
- AC_DEFINE(ACE_LACKS_READLINK))
-
-AC_CHECK_FUNC(rename, dnl
- ,
- AC_DEFINE(ACE_LACKS_RENAME))
-
-AC_CHECK_FUNC(recvmsg, dnl
- ,
- AC_DEFINE(ACE_LACKS_RECVMSG))
-
-AC_CHECK_FUNC(sendmsg, dnl
- ,
- AC_DEFINE(ACE_LACKS_SENDMSG))
-
-if test "$ace_has_tli" = yes; then
- AC_CHECK_FUNC(t_getname, dnl
- AC_DEFINE(ACE_HAS_SVR4_TLI),)
-fi
-
-AC_CHECK_FUNC(getrusage, dnl
- AC_DEFINE(ACE_HAS_GETRUSAGE),)
-
-AC_CHECK_FUNC(getpgid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the getpgid() prototype visible.
- ACE_CACHE_CHECK(for getpgid prototype,
- ace_cv_lib_has_getpgid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+getpgid], unistd.h,
- [
- ace_cv_lib_has_getpgid_prototype=yes
- ],
- [
- ace_cv_lib_has_getpgid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_GETPGID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_GETPGID)
- ])
-
-AC_CHECK_FUNC(getppid, dnl
- ,
- AC_DEFINE(ACE_LACKS_GETPPID))
-
-AC_CHECK_FUNC(setregid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the setregid() prototype visible.
- ACE_CACHE_CHECK(for setregid prototype,
- ace_cv_lib_has_setregid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_BSD_SOURCE -U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+setregid], time.h,
- [
- ace_cv_lib_has_setregid_prototype=yes
- ],
- [
- ace_cv_lib_has_setregid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_SETREGID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETREGID)
- ])
-
-AC_CHECK_FUNC(setreuid, dnl
- [
- dnl Check if _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED macros are
- dnl needed to make the setreuid() prototype visible.
- ACE_CACHE_CHECK(for setreuid prototype,
- ace_cv_lib_has_setreuid_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_xopen="-U_BSD_SOURCE -U_XOPEN_SOURCE -U_XOPEN_SOURCE_EXTENDED"
- CPPFLAGS="$CPPFLAGS $ace_no_xopen"
- AC_EGREP_HEADER([[^_]+setreuid], time.h,
- [
- ace_cv_lib_has_setreuid_prototype=yes
- ],
- [
- ace_cv_lib_has_setreuid_prototype=no
- ])
- dnl Reset the compiler flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_SETREUID_PROTOTYPE))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETREUID)
- ])
-
-AC_CHECK_FUNC(getpagesize, dnl
- AC_DEFINE(ACE_HAS_GETPAGESIZE),
- AC_DEFINE(ACE_PAGE_SIZE, 4096))
-
-AC_CHECK_FUNC(msync, dnl
- ,
- AC_DEFINE(ACE_LACKS_MSYNC))
-
-AC_CHECK_FUNC(mprotect, dnl
- ,
- AC_DEFINE(ACE_LACKS_MPROTECT))
-
-AC_CHECK_FUNC(mkfifo, dnl
- ,
- AC_DEFINE(ACE_LACKS_MKFIFO))
-
-AC_CHECK_FUNC(mktemp, dnl
- ,
- AC_DEFINE(ACE_LACKS_MKTEMP))
-
-AC_CHECK_FUNC(madvise, dnl
- ,
- AC_DEFINE(ACE_LACKS_MADVISE))
-
-if test "$ac_cv_header_sys_priocntl_h" = yes; then
- AC_CHECK_FUNC(priocntl, dnl
- AC_DEFINE(ACE_HAS_PRIOCNTL),)
-
-dnl Some platforms define priocntl as a macro!
- if test "$ac_cv_func_priocntl" = no; then
- ACE_CACHE_CHECK(for priocntl macro,
- ace_cv_lib_has_priocntl_macro,
- [
- AC_EGREP_CPP(ACE_PRIOCNTL_MACRO,
- [
-#include <sys/priocntl.h>
-
-#if defined (priocntl)
- ACE_PRIOCNTL_MACRO
-#endif
- ],
- [
- ace_cv_lib_has_priocntl_macro=yes
- ],
- [
- ace_cv_lib_has_priocntl_macro=no
- ])
- ], AC_DEFINE(ACE_HAS_PRIOCNTL),)
- fi dnl test "$ac_cv_func_priocntl" = no
-fi dnl test "$ac_cv_header_sys_priocntl_h" = yes
-
-dnl FIXME: How do we check for a working sbrk()? Do we need to?
-AC_CHECK_FUNC(sbrk,, AC_DEFINE(ACE_LACKS_SBRK))
-
-dnl Check for SYSV IPC functions
-AC_CHECK_FUNC(msgctl,,)
-
-AC_CHECK_FUNC(msgget,,)
-
-AC_CHECK_FUNC(msgrcv,,)
-
-AC_CHECK_FUNC(semctl,,)
-
-AC_CHECK_FUNC(semget,,)
-
-AC_CHECK_FUNC(semop,,)
-
-AC_CHECK_FUNC(shmat,,)
-
-AC_CHECK_FUNC(shmctl,,)
-
-AC_CHECK_FUNC(shmdt,,)
-
-AC_CHECK_FUNC(shmget,,)
-dnl End check for SYSV IPC functions
-
-AC_CHECK_FUNC(read_real_time, dnl
- AC_DEFINE(ACE_HAS_AIX_HI_RES_TIMER),)
-
-AC_CHECK_FUNC(shm_open, dnl
- [
- AC_MSG_WARN(platform supports shm_open but shm_open support will not be)
- AC_MSG_WARN(enabled since ACE currently supports it only on LynxOS)
-dnl AC_DEFINE(ACE_HAS_SHM_OPEN)
- ],)
-
-AC_CHECK_FUNC(tempnam, dnl
- ,
- AC_DEFINE(ACE_LACKS_TEMPNAM))
-
-AC_CHECK_FUNC(truncate, dnl
- ,
- AC_DEFINE(ACE_LACKS_TRUNCATE))
-
-dnl Check for MIT pthreads APIs for timed send/recv operations
-AC_CHECK_FUNC(recv_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECV_TIMEDWAIT),)
-
-AC_CHECK_FUNC(recvfrom_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECVFROM_TIMEDWAIT),)
-
-AC_CHECK_FUNC(recvmsg_timedwait, dnl
- AC_DEFINE(ACE_HAS_RECVMSG_TIMEDWAIT),)
-
-AC_CHECK_FUNC(send_timedwait, dnl
- AC_DEFINE(ACE_HAS_SEND_TIMEDWAIT),)
-
-AC_CHECK_FUNC(sendto_timedwait, dnl
- AC_DEFINE(ACE_HAS_SENDTO_TIMEDWAIT),)
-
-AC_CHECK_FUNC(sendmsg_timedwait, dnl
- AC_DEFINE(ACE_HAS_SENDMSG_TIMEDWAIT),)
-
-AC_CHECK_FUNC(read_timedwait, dnl
- AC_DEFINE(ACE_HAS_READ_TIMEDWAIT),)
-
-AC_CHECK_FUNC(readv_timedwait, dnl
- AC_DEFINE(ACE_HAS_READV_TIMEDWAIT),)
-
-AC_CHECK_FUNC(write_timedwait, dnl
- AC_DEFINE(ACE_HAS_WRITE_TIMEDWAIT),)
-
-AC_CHECK_FUNC(writev_timedwait, dnl
- AC_DEFINE(ACE_HAS_WRITEV_TIMEDWAIT),)
-
-dnl Save the cache for debugging purposes
-AC_CACHE_SAVE
-
-dnl Check for POSIX Semaphore functions
-dnl We only check for a few of them since some platforms don't have these.
-AC_CHECK_FUNC(sem_init,,) dnl
-AC_CHECK_FUNC(sem_destroy,,) dnl
-
-dnl We only enable POSIX semaphores if we are not using UNIX International
-dnl threads.
-dnl Enabling POSIX semaphores on Solaris seems to cause problems for
-dnl ACE. (NOTE: This may no longer be true after the updates/fixes
-dnl I made. The fixes corrected broken code in ACE_OS::sema_init().
-dnl -Ossama)
-if test "$ac_cv_func_sem_init" = yes &&
- test "$ac_cv_func_sem_destroy" = yes &&
- test "$ace_cv_type_sem_t" = yes &&
- test "$ace_has_sthreads" != yes; then
-
-dnl Only enable POSIX semaphore support if process shared semaphores
-dnl are supported. Presumably process shared semaphores are only
-dnl available if the _POSIX_THREAD_PROCESS_SHARED macro is defined by
-dnl the platform.
- AC_EGREP_CPP(WE_HAVE_SHARED_POSIX_SEMAPHORES,
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h> /* needed for _POSIX_THREAD_PROCESS_SHARED */
-#endif
-
-#include <pthread.h>
-#include <semaphore.h>
-
-#if defined (_POSIX_THREAD_PROCESS_SHARED)
-WE_HAVE_SHARED_POSIX_SEMAPHORES
-#endif
- ],
- [
- AC_DEFINE(ACE_HAS_POSIX_SEM)
-
- AC_CHECK_FUNC(sem_open,
- [
- dnl Check if it works! For example, in glibc 2.x sem_open exists
- dnl but it appears to be a stub. However, it isn't listed as a
- dnl stub in <gnu/stubs.h> so the configure script thinks it is
- dnl implemented!
- ACE_CACHE_CHECK(if sem_open works,
- ace_cv_sem_open_works,
- [
- AC_TRY_RUN(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#include <stddef.h> /* for definition of "NULL" */
-
-#include <semaphore.h>
-
-#ifndef SEM_FAILED
-# define SEM_FAILED ((sem_t *) -1)
-#endif
-
-int
-main ()
-{
- sem_t *s = 0;
-
- s = sem_open ("ace_semaphore_foo", O_CREAT | O_EXCL, 0600, 1);
-
- if (s == SEM_FAILED)
- return -1; /* FAILURE */
-
- if (sem_close (s) != 0)
- return -1; /* Something went wrong! */
-
- return 0;
-}
- ],
- [
- ace_cv_sem_open_works=yes
- ],
- [
- ace_cv_sem_open_works=no
- ],
- [
- dnl action if cross-compiling
- ace_cv_sem_open_works=yes
- ])
- ],, AC_DEFINE(ACE_LACKS_NAMED_POSIX_SEM))
- ],
- [
- AC_DEFINE(ACE_LACKS_NAMED_POSIX_SEM)
- ])
- ],)
-
-fi dnl check for POSIX Semaphore functions
-
-dnl
-dnl The following tests are performed only when the user has enabled
-dnl support for threads.
-
-dnl NOTE: Make sure the thread library is in "LIBS"
-dnl (e.g.: LIBS="$LIBS -lpthread")
-dnl otherwise the below thread "CHECK_FUNCs"
-dnl will not work correctly.
-if test "$ace_user_enable_threads" = yes; then
-
- if test "$ace_has_pthreads" = yes; then
-dnl Digital UNIX 4.0 "mangles" the following pthread functions:
-dnl pthread_attr_getguardsize_np
-dnl pthread_attr_getinheritsched
-dnl pthread_attr_getstacksize
-dnl pthread_attr_setguardsize_np
-dnl pthread_attr_setinheritsched
-dnl pthread_attr_setstacksize
-dnl pthread_cancel
-dnl pthread_cond_broadcast
-dnl pthread_cond_destroy
-dnl pthread_cond_init
-dnl pthread_cond_sig_preempt_int_np
-dnl pthread_cond_signal
-dnl pthread_cond_signal_int_np
-dnl pthread_cond_timedwait
-dnl pthread_cond_wait
-dnl pthread_create
-dnl pthread_delay_np
-dnl pthread_detach
-dnl pthread_equal
-dnl pthread_exit
-dnl pthread_get_expiration_np
-dnl pthread_getspecific
-dnl pthread_join
-dnl pthread_lock_global_np
-dnl pthread_mutex_destroy
-dnl pthread_mutex_init
-dnl pthread_mutex_lock
-dnl pthread_mutex_trylock
-dnl pthread_mutex_unlock
-dnl pthread_once
-dnl pthread_self
-dnl pthread_setspecific
-dnl pthread_testcancel
-dnl pthread_unlock_global_np
-dnl These functions have a double underscore "__" prepended to maintain
-dnl backwards compatibility with Pthread Draft 4 functions of the same
-dnl name.
-
- AC_CHECK_FUNC(pthread_sigmask, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_SIGMASK))
-
- AC_CHECK_FUNC(pthread_key_create, dnl
- [AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE)],
- [
- AC_CHECK_FUNC(pthread_keycreate,
- [AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE)],
- [AC_DEFINE(ACE_HAS_TSS_EMULATION)])
- ])
-
- AC_CHECK_FUNC(pthread_condattr_setkind_np, dnl
- AC_DEFINE(ACE_HAS_PTHREAD_CONDATTR_SETKIND_NP),)
-
- AC_CHECK_FUNC(pthread_mutexattr_setkind_np, dnl
- AC_DEFINE(ACE_HAS_PTHREAD_MUTEXATTR_SETKIND_NP),)
-
- AC_CHECK_FUNC(pthread_condattr_setpshared, dnl
- ,
- AC_DEFINE(ACE_LACKS_CONDATTR_PSHARED))
-
- AC_CHECK_FUNC(pthread_attr_setstackaddr, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_STACK_ADDR))
-
- ACE_CHECK_FUNC(pthread_attr_setstacksize, pthread.h, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_STACK_SIZE))
-
- ACE_CHECK_FUNC([pthread_cancel], [pthread.h],
- [
- dnl Make sure the prototype actually exists. Some platforms,
- dnl such as FreeBSD 4, appear to have a missing prototype. If
- dnl the prototype is missing, then don't use pthread_cancel.
- dnl Creating a prototype for it in ACE is probably a bad idea.
-
- ace_save_CPPFLAGS="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ACE_THR_CPPFLAGS"
-
- AC_EGREP_HEADER([pthread_cancel], [pthread.h],
- [
- dnl Do nothing if the prototype exists.
- ],
- [
- AC_DEFINE(ACE_LACKS_PTHREAD_CANCEL)
- ])
-
- dnl Reset the preprocessor flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],
- [
- AC_DEFINE(ACE_LACKS_PTHREAD_CANCEL)
- ])
-
- AC_CHECK_FUNC(pthread_yield, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_YIELD))
-
- AC_CHECK_FUNC(pthread_thr_sigsetmask, dnl
- ,
- AC_DEFINE(ACE_LACKS_PTHREAD_THR_SIGSETMASK))
-
- AC_CHECK_FUNC(pthread_attr_setdetachstate, dnl
- ,
- AC_DEFINE(ACE_LACKS_SETDETACH))
-
- dnl ACE currently doesn't provide enough fine grained control over
- dnl these functions so both must be present in order to prevent
- dnl ACE_LACKS_SETSCHED from being defined.
- AC_CHECK_FUNC(sched_setscheduler, dnl
- [
- AC_CHECK_FUNC(pthread_attr_setschedpolicy,,
- AC_CHECK_FUNC(pthread_attr_setsched,,
- AC_DEFINE(ACE_LACKS_SETSCHED)))
- ],
- [
- AC_DEFINE(ACE_LACKS_SETSCHED)
- ])
-
- AC_CHECK_FUNC(pthread_attr_setscope, dnl
- ,
- AC_DEFINE(ACE_LACKS_THREAD_PROCESS_SCOPING))
-
- AC_CHECK_FUNC(pthread_mutexattr_setpshared, dnl
- ,
- AC_DEFINE(ACE_LACKS_MUTEXATTR_PSHARED))
-
-dnl Check for POSIX Threads Draft 4 functions
- AC_CHECK_FUNC(pthread_mutexattr_create,,) dnl
- AC_CHECK_FUNC(pthread_mutexattr_delete,,) dnl
- AC_CHECK_FUNC(pthread_condattr_delete,,) dnl
- AC_CHECK_FUNC(pthread_condattr_create,,) dnl
- AC_CHECK_FUNC(pthread_setprio,,) dnl
- AC_CHECK_FUNC(pthread_getprio,,) dnl
- AC_CHECK_FUNC(pthread_setcancel,,) dnl
- AC_CHECK_FUNC(pthread_setasynccancel,,) dnl
- AC_CHECK_FUNC(pthread_kill,,) dnl
-dnl Check for POSIX Threads Draft 6 functions
- AC_CHECK_FUNC(pthread_attr_setprio,,) dnl
- AC_CHECK_FUNC(pthread_attr_getprio,,) dnl
- AC_CHECK_FUNC(pthread_setintr,,) dnl
- AC_CHECK_FUNC(pthread_setintrtype,,) dnl
-dnl Check for POSIX threads Draft 6, 7 and Standard common functions
- AC_CHECK_FUNC(pthread_mutexattr_init,,) dnl
- AC_CHECK_FUNC(pthread_mutexattr_destroy,,) dnl
- AC_CHECK_FUNC(pthread_condattr_init,,) dnl
- AC_CHECK_FUNC(pthread_condattr_destroy,,) dnl
-dnl Check for POSIX Threads Draft 7 and Draft Standard common functions
- AC_CHECK_FUNC(pthread_setschedparam,,) dnl
- AC_CHECK_FUNC(pthread_getschedparam,,) dnl
- AC_CHECK_FUNC(pthread_setcancelstate,,) dnl
- AC_CHECK_FUNC(pthread_setcanceltype,,) dnl
-dnl Check for POSIX Threads Draft Standard functions
-dnl sched_yield() is in the C library or perhaps in "-lposix4."
-dnl We need to add other library checks in this script's "check libraries"
-dnl section if it is in another library.
-dnl AC_CHECK_FUNC(sched_yield,,) dnl
-dnl We already check for this during the library checks.
-
-dnl Check for Unix98 pthreads extensions
- ACE_CACHE_CHECK([for struct pthread_rwlock_t],
- [ace_cv_struct_pthread_rwlock_t],
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(pthread_rwlock_t, pthread.h,
- [
- ace_cv_struct_pthread_rwlock_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(pthread_rwlock_t, sys/types.h,
- [
- ace_cv_struct_pthread_rwlock_t=yes
- ],
- [
- ace_cv_struct_pthread_rwlock_t=no
- ])
- ])
- ],,)
-
- ACE_CACHE_CHECK([for struct pthread_rwlockattr_t],
- [ace_cv_struct_pthread_rwlockattr_t],
- [
- dnl Since we are checking for siginfo_t in more than one header
- dnl we can't use the ACE_CHECK_STRUCT macro so we have to do things
- dnl manually.
- ACE_TRY_COMPILE_STRUCT(pthread_rwlockattr_t, pthread.h,
- [
- ace_cv_struct_pthread_rwlockattr_t=yes
- ],
- [
- ACE_TRY_COMPILE_STRUCT(pthread_rwlockattr_t, sys/types.h,
- [
- ace_cv_struct_pthread_rwlockattr_t=yes
- ],
- [
- ace_cv_struct_pthread_rwlockattr_t=no
- ])
- ])
- ],,)
-
- AC_CHECK_FUNC(pthread_continue,,)dnl
- AC_CHECK_FUNC(pthread_suspend,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_init,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_destroy,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_rdlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_wrlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_unlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_tryrdlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlock_trywrlock,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_init,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_destroy,,)dnl
- AC_CHECK_FUNC(pthread_rwlockattr_setpshared,,)dnl
-
- if test "$ace_cv_struct_pthread_rwlock_t" = yes &&
- test "$ace_cv_struct_pthread_rwlockattr_t" = yes &&
- test "$ac_cv_func_pthread_continue" = yes &&
- test "$ac_cv_func_pthread_continue" = yes &&
- test "$ac_cv_func_pthread_suspend" = yes &&
- test "$ac_cv_func_pthread_rwlock_init" = yes &&
- test "$ac_cv_func_pthread_rwlock_destroy" = yes &&
- test "$ac_cv_func_pthread_rwlock_rdlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_wrlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_unlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_tryrdlock" = yes &&
- test "$ac_cv_func_pthread_rwlock_trywrlock" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_init" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_destroy" = yes &&
- test "$ac_cv_func_pthread_rwlockattr_setpshared" = yes; then
- AC_DEFINE(ACE_HAS_PTHREADS_UNIX98_EXT)dnl
- fi dnl Unix98 pthreads extensions
-
-dnl Check if platform has thread_self() rather than pthread_self()
- ACE_CHECK_FUNC(pthread_self, pthread.h, dnl
- ,
- [
- AC_CHECK_FUNC(thread_self,
- [
- AC_DEFINE(ACE_HAS_THREAD_SELF)
- ],)
- ])
-
-dnl Check if pthread.h declares an enum with PTHREAD_PROCESS_PRIVATE and
-dnl PTHREAD_PROCESS_SHARED valuesACE_CACHE_CHECK(for ctime() macro,
- ACE_CACHE_CHECK(for PTHREAD_PROCESS_* enumeration in pthread.h,
- ace_cv_lib_pthread_process_enum,
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
- ],
- [
-/* Undefine PTHREAD_PROCESS_SHARED in case some platforms #define it */
-#undef PTHREAD_PROCESS_SHARED
-int foo = PTHREAD_PROCESS_SHARED;
- ],
- [
- ace_cv_lib_pthread_process_enum=yes
- ],
- [
- ace_cv_lib_pthread_process_enum=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_PTHREAD_PROCESS_ENUM)
- ],)
-
-dnl Check if pthread_create requires an extern "C" start routine
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if pthread_create requires an extern \"C\" start routine,
- ace_cv_lib_pthread_c_func,[
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void *ace_start_routine(void *);
- ],
- [
-pthread_create(0, 0, ace_start_routine, 0);
- ],
- [
- ace_cv_lib_pthread_c_func=no
- ],
- [
- dnl Check if extern "C" start routine is required.
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-extern "C" void *ace_start_routine(void *);
- ],
- [
-pthread_create(0, 0, ace_start_routine, 0);
- ],
- [
- ace_cv_lib_pthread_c_func=yes
- ],
- [
- ace_cv_lib_pthread_c_func=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_THR_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if pthread_key_create has a standard arg thread destructor
-ACE_CACHE_CHECK(if pthread_key_create has std arg thread destructor,
- ace_cv_lib_pthread_stdarg_dest,[
- if test "$ac_cv_func_pthread_key_create" = yes; then
- ace_pthread_key_create=pthread_key_create
- else
- ace_pthread_key_create=pthread_keycreate
- fi
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(...);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=yes
- ],
- [
- ace_cv_lib_pthread_stdarg_dest=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_STDARG_THR_DEST)
- ],)
-
-dnl Check if pthread_key_create requires an extern "C" start routine
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if pthread_key_create requires an extern \"C\" start routine,
- ace_cv_lib_pthread_c_dest,[
- if test "$ac_cv_func_pthread_key_create" = yes; then
- ace_pthread_key_create=pthread_key_create
- else
- ace_pthread_key_create=pthread_keycreate
- fi
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_c_dest=no
- ],
- [
- dnl Check if extern "C" start routine is required.
- AC_TRY_COMPILE(
- [
-#include <pthread.h>
-
-extern "C" void ace_destructor(void *);
- ],
- [
-${ace_pthread_key_create}(0, ace_destructor);
- ],
- [
- ace_cv_lib_pthread_c_dest=yes
- ],
- [
- ace_cv_lib_pthread_c_dest=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_THR_C_DEST)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-AC_CHECK_FUNC([sched_get_priority_min],
- [
- dnl Do nothing
- ],
- [
- AC_EGREP_CPP([ace_has_pthread_min_priority],,
- [
-dnl Check PTHREAD_MIN_PRIORITY is a macro.
-#include <pthread.h>
-#ifdef PTHREAD_MIN_PRIORITY
- ace_has_pthread_min_priority
-#endif /* PTHREAD_MIN_PRIORITY */
- ],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_min=no
- ],
- [
- dnl Check if PTHREAD_MIN_PRIORITY is not a macro.
- AC_EGREP_HEADER([PTHREAD_MIN_PRIORITY], [pthread.h],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_min=no
- ],
- [
- dnl PTHREAD_MIN_PRIORITY doesn't appear to be defined, so
- dnl check if the platform defines PX_PRIO_MIN, instead.
-
- dnl Check if PX_PRIO_MIN is defined.
- AC_EGREP_CPP([ace_has_px_prio_min],
- [
- dnl Check PX_PRIO_MIN is a macro.
-#include <pthread.h>
-#ifdef PX_PRIO_MIN
- ace_has_px_prio_min
-#endif /* PX_PRIO_MIN */
- ],
- [
- ace_has_px_prio_min=yes
- ],
- [
- dnl Check if PX_PRIO_MIN is not a macro.
- AC_EGREP_HEADER([PX_PRIO_MIN], [pthread.h],
- [
- ace_has_px_prio_min=yes
- ],
- [
- ace_has_px_prio_min=no
- ])
- ])
- ])
- ])
- ])
-
- if test "$ace_has_px_prio_min" = yes; then
- AC_DEFINE(PTHREAD_MIN_PRIORITY,
- PX_PRIO_MIN,
- [Minimum thread priority])
- fi
-
-AC_CHECK_FUNC([sched_get_priority_max],
- [
- dnl Do nothing
- ],
- [
- AC_EGREP_CPP([ace_has_pthread_max_priority],
- [
-dnl Check PTHREAD_MAX_PRIORITY is a macro.
-#include <pthread.h>
-#ifdef PTHREAD_MAX_PRIORITY
- ace_has_pthread_max_priority
-#endif /* PTHREAD_MAX_PRIORITY */
- ],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_max=no
- ],
- [
- dnl Check if PTHREAD_MAX_PRIORITY is not a macro.
- AC_EGREP_HEADER([PTHREAD_MAX_PRIORITY], [pthread.h],
- [
- dnl Since we PTHREAD_MAX_PRIORITY, denote that PX_PRIO_MAX should
- dnl not be used.
- ace_has_px_prio_max=no
- ],
- [
- dnl PTHREAD_MAX_PRIORITY doesn't appear to be defined, so
- dnl check if the platform defines PX_PRIO_MAX, instead.
-
- dnl Check if PX_PRIO_MAX is defined.
- AC_EGREP_CPP([ace_has_px_prio_max],
- [
- dnl Check PX_PRIO_MIN is a macro.
-#include <pthread.h>
-#ifdef PX_PRIO_MAX
- ace_has_px_prio_max
-#endif /* PX_PRIO_MAX */
- ],
- [
- ace_has_px_prio_max=yes
- ],
- [
- dnl Check if PX_PRIO_MAX is not a macro.
- AC_EGREP_HEADER([PX_PRIO_MAX], [pthread.h],
- [
- ace_has_px_prio_max=yes
- ],
- [
- ace_has_px_prio_max=no
- ])
- ])
- ])
- ])
- ])
- if test "$ace_has_px_prio_max" = yes; then
- AC_DEFINE(PTHREAD_MAX_PRIORITY,
- PX_PRIO_MAX,
- [Maximum thread priority])
- fi
-
- fi dnl test "$ace_has_pthreads" = yes
-
- if test "$ace_has_sthreads" = yes; then
-dnl Only check for these functions if we have the UNIX International
-dnl Threads library "thread."
- AC_CHECK_FUNC(thr_keycreate, dnl
- AC_DEFINE(ACE_HAS_THREAD_SPECIFIC_STORAGE),
- AC_DEFINE(ACE_HAS_TSS_EMULATION))
-
- AC_CHECK_FUNC(thr_yield, dnl
- AC_DEFINE(ACE_HAS_THR_YIELD),)
-
- AC_CHECK_FUNC(thr_keydelete, dnl
- AC_DEFINE(ACE_HAS_THR_KEYDELETE),)
-
- AC_CHECK_FUNC(thr_min_stack, dnl
- ,
- [
- AC_CHECK_FUNC(thr_minstack,
- AC_DEFINE(ACE_HAS_THR_MINSTACK),)
- ])
-
- fi dnl test "$ace_has_sthreads" = yes
-
-fi dnl test "$ace_user_enable_threads" = yes
-
-dnl
-dnl By Eric:
-dnl ACE will define a sigwait function if we lie and say we don't have
-dnl one. Unfortunately, the ACE function may conflict with our
-dnl function, so we'll go ahead and turn this on, even if we are
-dnl ignoring threads.
-AC_CHECK_FUNC(sigwait, dnl
- AC_DEFINE(ACE_HAS_SIGWAIT),)
-
-
-dnl Check for reentrant functions
-if test "$ace_user_enable_reentrant_funcs" = yes; then
- AC_CHECK_FUNC(rand_r,,)
-
- AC_CHECK_FUNC(strtok_r,
- [
- dnl Check if _POSIX_SOURCE macro is needed to make the strtok_r()
- dnl prototype visible.
- ACE_CACHE_CHECK(for strtok_r prototype,
- ace_cv_lib_has_strtok_r_prototype,
- [
- ace_save_CPPFLAGS="$CPPFLAGS"
- ace_no_posix="-U_POSIX_SOURCE $ACE_THR_CPPFLAGS"
- CPPFLAGS="$CPPFLAGS $ace_no_posix"
- AC_EGREP_HEADER([[^_]+strtok_r], string.h,
- [
- ace_cv_lib_has_strtok_r_prototype=yes
- ],
- [
- ace_cv_lib_has_strtok_r_prototype=no
- ])
- dnl Reset the preprocessor flags
- CPPFLAGS="$ace_save_CPPFLAGS"
- ],, AC_DEFINE(ACE_LACKS_STRTOK_R_PROTOTYPE))
- ],)
-
- AC_CHECK_FUNC(getpwnam_r,, AC_DEFINE(ACE_LACKS_PWD_REENTRANT_FUNCTIONS))
-
- AC_CHECK_FUNC(ctime_r,,)
-
- AC_CHECK_FUNC(localtime_r,,)
-
- AC_CHECK_FUNC(gmtime_r,,)
-
- AC_CHECK_FUNC(asctime_r,,)
-
- AC_CHECK_FUNC(getprotobyname_r,,)
-
- AC_CHECK_FUNC(getprotobynumber_r,,)
-
- AC_CHECK_FUNC(gethostbyaddr_r,,)
-
- AC_CHECK_FUNC(gethostbyname_r,,)
-
- AC_CHECK_FUNC(getservbyname_r,,)
-fi dnl End checks for reentrant functions
-
-AC_CHECK_FUNC(readdir_r, dnl
- ,
- AC_DEFINE(ACE_LACKS_READDIR_R))
-
-AC_CHECK_FUNC(seekdir, dnl
- ,
- AC_DEFINE(ACE_LACKS_SEEKDIR))
-
-AC_CHECK_FUNC(telldir, dnl
- ,
- AC_DEFINE(ACE_LACKS_TELLDIR))
-
-
-dnl
-dnl SECTION 11: checks for function characteristics
-dnl
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if dlopen takes a char * arg instead of const char *
- if test "$ace_has_svr4_dynamic_linking" = yes; then
- ACE_CACHE_CHECK(if dlopen takes a char *,
- ace_cv_lib_charptr_dl,
- [
- dnl Check if it takes a const char *, first.
- AC_TRY_COMPILE(
- [
-#include <dlfcn.h>
- ],
- [
- const char *filename = 0;
- int flag = 0;
- void *ptr = dlopen(filename, flag);
- ],
- [
- ace_cv_lib_charptr_dl=no
- ],
- [
- dnl Now check if it takes a non-const char *.
- AC_TRY_COMPILE(
- [
-#include <dlfcn.h>
- ],
- [
- char *filename = 0;
- int flag = 0;
- void *ptr = dlopen(filename, flag);
- ],
- [
- ace_cv_lib_charptr_dl=yes
- ],
- [
- ace_cv_lib_charptr_dl=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_CHARPTR_DL),)
- fi dnl test "$ace_has_svr4_dynamic_linking" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if "getby" functions use a non-const char * argument
- if test "$ac_cv_func_gethostbyaddr" = yes; then
- ACE_CACHE_CHECK(\"getby\" functions take a non-const char *,
- ace_cv_lib_nonconst_getby,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/socket.h>
- ],
- [
- char *addr = 0;
- int len = 0;
- int type = 0;
- struct hostent *mystruct = 0;
-
- mystruct = gethostbyaddr(name, len, type);
- ],
- [
- ace_cv_lib_nonconst_getby=yes
- ],
- [
- ace_cv_lib_nonconst_getby=no
- ])
- ], AC_DEFINE(ACE_HAS_NONCONST_GETBY),)
- fi dnl test "$ac_cv_func_gethostbyaddr" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if new throws exception upon failure
-if test "$ace_user_enable_exceptions" = yes; then
- ACE_CACHE_CHECK(if new throws bad_alloc exception on failure,
- ace_cv_new_throws_bad_alloc_exception,
- [
- AC_TRY_RUN(
- [
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-#if defined (ACE_HAS_STDEXCEPT_NO_H)
-# include <stdexcept>
-#elif defined (ACE_HAS_EXCEPTION_H)
-# include <exception.h>
-#endif
-
- int main(int, char *[]) {
- while (1) {
- try {
- char *a = new char[1024*1024];
- if (a == 0) {
- return 1; /* new() does NOT throw exceptions */
- }
- }
-
- catch (bad_alloc)
- {
- return 0; /* new() does throw exceptions */
- }
- };
-
- return 1; /* ERROR: We shouldn't get this far! */
- }
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=yes
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=no
- ],
- [
- ace_cv_new_throws_bad_alloc_exception=no
- ])
- ], AC_DEFINE(ACE_NEW_THROWS_EXCEPTIONS),)
-
- if test "$ace_cv_new_throws_bad_alloc_exception" != yes; then
- ACE_CACHE_CHECK(if new throws xalloc exception on failure,
- ace_cv_new_throws_xalloc_exception,
- [
- AC_TRY_RUN(
- [
-#if defined (ACE_HAS_NEW_NO_H)
-# include <new>
-#elif defined (ACE_HAS_NEW_H)
-# include <new.h>
-#endif
-
-#if defined (ACE_HAS_STDEXCEPT_NO_H)
-# include <stdexcept>
-#elif defined (ACE_HAS_EXCEPTION_H)
-# include <exception.h>
-#endif
-
- int main(int, char *[]) {
- while (1) {
- try {
- char *a = new char[1024*1024];
- if (a == 0) {
- return 1; /* new() does NOT throw exceptions */
- }
- }
-
- catch (xalloc)
- {
- return 0; /* new() does throw exceptions */
- }
- };
-
- return 1; /* ERROR: We shouldn't get this far! */
- }
- ],
- [
- ace_cv_new_throws_xalloc_exception=yes
- ],
- [
- ace_cv_new_throws_xalloc_exception=no
- ],
- [
- ace_cv_new_throws_xalloc_exception=no
- ])
- ], AC_DEFINE(ACE_NEW_THROWS_EXCEPTIONS),)
- fi dnl ace_cv_new_throws_bad_alloc_exceptions = no
-fi dnl $ace_user_enable_exceptions = yes
-
-ACE_CONVERT_WARNINGS_TO_ERRORS([
-dnl Check if putmsg takes a const struct strbuf *
-dnl If we have getmsg() we can be pretty sure that we have putmsg()
- if test "$ac_cv_func_getmsg" = yes ||
- test "$ac_cv_header_stropts_h" = yes; then
- ACE_CACHE_CHECK(if putmsg takes a const struct strbuf*,
- ace_cv_lib_const_strbufptr,
- [
- dnl Check if it takes a const struct strbuf *, first.
- AC_TRY_COMPILE(
- [
-#include <stropts.h>
- ],
- [
- int result = 0;
- int fd = 0;
- const struct strbuf * ace_str = 0;
- int flags = 0;
-
- result = putmsg(fd, ace_str, ace_str, flags);
- ],
- [
- ace_cv_lib_const_strbufptr=yes
- ],
- [
- ace_cv_lib_const_strbufptr=no
- ])
- ],, AC_DEFINE(ACE_LACKS_CONST_STRBUF_PTR))
- fi dnl "$ac_cv_func_getmsg" = yes || "$ac_cv_header_stropts_h" = yes
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if select takes int instead of fd_set
-ACE_CONVERT_WARNINGS_TO_ERRORS([
- ACE_CACHE_CHECK(if select takes int instead of fd_set,
- ace_cv_lib_select_takes_int,
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- fd_set* readfds = 0;
- fd_set* writefds = 0;
- fd_set* exceptfds = 0;
- timeval* timeout = 0;
- int result = 0;
-
- result = select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_select_takes_int=no
- ],
- [
-dnl Now check if select will actually take int* arguments
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- int* readfds = 0;
- int* writefds = 0;
- int* exceptfds = 0;
- timeval* timeout = 0;
- int result = 0;
-
- result = select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_select_takes_int=yes
- ],
- [
- ace_cv_lib_select_takes_int=no
- dnl If we get here we don't know what select() takes.
- ])
- ])
- ], AC_DEFINE(ACE_SELECT_USES_INT),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-dnl Check if setrlimit() takes an enum as 1st argument
-ACE_CHECK_SETRLIMIT_ENUM
-
-dnl This test fails (i.e. passes when it shouldn't) when compiling with
-dnl GCC/G++ since the compiler treats passing a const to a non-const
-dnl argument as a warning and not as an error since the const is
-dnl simply discarded. To correct this problem, we use "-Werror" which
-dnl converts all warnings to errors, whenever we are compiling with
-dnl G++.
-dnl -Ossama
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if setrlimit() takes a const pointer as 2nd argument
-ACE_CACHE_CHECK(if setrlimit() takes a const pointer as 2nd argument,
- ace_cv_lib_posix_setrlimit_const_2,[
- AC_TRY_COMPILE(
- [
-#include <sys/resource.h>
- ],
- [
- const struct rlimit* rlp = 0;
- setrlimit(RLIMIT_CPU, rlp);
- ],
- [
- ace_cv_lib_posix_setrlimit_const_2=yes
- ],
- [
- ace_cv_lib_posix_setrlimit_const_2=no
- ])
- ],, [AC_DEFINE(ACE_HAS_BROKEN_SETRLIMIT)])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if getrusage() takes an enum as 1st argument
-ACE_CHECK_GETRUSAGE_ENUM
-
-dnl TODO: This doesn't work.
-dnl The compiler in linux just issues a warning, and the test passes!!!
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if select takes a const fifth argument
-ACE_CACHE_CHECK(if select takes a const fifth argument,
- ace_cv_lib_posix_select_const_5,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef ACE_HAS_SELECT_H
-# include <sys/select.h>
-#endif
- ],
- [
- int n = 0;
- fd_set *readfds = 0;
- fd_set *writefds = 0;
- fd_set *exceptfds = 0;
- const struct timeval* timeout = 0;
- select(n, readfds, writefds, exceptfds, timeout);
- ],
- [
- ace_cv_lib_posix_select_const_5=yes
- ],
- [
- ace_cv_lib_posix_select_const_5=no
- ])
- ], , AC_DEFINE(ACE_HAS_NONCONST_SELECT_TIMEVAL))
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Only run the following tests if the msghdr structure exists.
-if test "$ace_cv_struct_msghdr" = yes &&
- test "$ac_cv_func_sendmsg" = yes; then
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
-dnl Check if sendmsg takes a const 2nd argument
- ACE_CACHE_CHECK(if sendmsg omits the const from the second argument,
- ace_cv_lib_broken_sendmsg,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- const struct msghdr *msg = 0;
- unsigned int flags = 0;
-
- int result = 0;
-
- result = (int) sendmsg(s, msg, flags);
- ],
- [
- ace_cv_lib_broken_sendmsg=no
- ],
- [
- ace_cv_lib_broken_sendmsg=yes
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_SENDMSG),)
- ]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl test "$ace_cv_struct_msghdr" = yes
-
-dnl Only run the following tests if the writev function exists
-if test "$ac_cv_header_sys_uio_h" = yes &&
- test "$ac_cv_func_writev" = yes; then
- ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
- [
-dnl Check if writev omits the const from the iovec argument
- ACE_CACHE_CHECK(if writev omits the const from the iovec argument,
- ace_cv_lib_broken_writev,[
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_UNISTD_H
-# include <unistd.h>
-#endif
-
-#include <sys/uio.h>
- ],
- [
- int filedes = 0;
- const struct iovec *vector = 0;
- size_t count = 0;
-
- int result = 0;
-
- result = (int) writev(filedes, vector, count);
- ],
- [
- ace_cv_lib_broken_writev=no
- ],
- [
- ace_cv_lib_broken_writev=yes
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_WRITEV),)
- ]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl $ac_cv_header_sys_uio_h = yes && $ac_cv_func_writev = yes
-
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(for (struct sockaddr *) msg_name field in msghdr,
- ace_cv_lib_sockaddr_msg_name,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr ace_msghdr;
- struct sockaddr *addr = 0;
-
- /*
- * Note that some platforms declare msg_name to be a void*,
- * in which case this assignment will work.
- * Should we _not_ define ACE_HAS_SOCKADDR_MSG_NAME in that
- * case? I tend to think it is more appropriate to define
- * ACE_HAS_SOCKADDR_MSG_NAME rather than cast addr to a char*,
- * as is done in ACE when the macro is not defined.
- * -Ossama
- */
- ace_msghdr.msg_name = (struct sockaddr *)addr;
- ],
- [
- ace_cv_lib_sockaddr_msg_name=yes
- ],
- [
- ace_cv_lib_sockaddr_msg_name=no
- ])
- ], AC_DEFINE(ACE_HAS_SOCKADDR_MSG_NAME),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK([if setsockopt() takes a void* fourth argument],
- [ace_cv_lib_posix_setsockopt_voidp_4],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- int level = 0;
- int optname = 0;
- void* optval = 0;
-
-#if defined (ACE_HAS_SOCKLEN_T)
- socklen_t optlen = 0;
-#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
- size_t optlen = 0;
-#else
- int optlen = 0;
-#endif
-
- setsockopt (s, level, optname, optval, optlen);
- ],
- [
- ace_cv_lib_posix_setsockopt_voidp_4=yes
- ],
- [
- ace_cv_lib_posix_setsockopt_voidp_4=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_VOIDPTR_SOCKOPT)
- ],
- [
- ACE_CACHE_CHECK([if setsockopt() takes a char* fourth argument],
- [ace_cv_lib_posix_setsockopt_charp_4],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- int s = 0;
- int level = 0;
- int optname = 0;
- char* optval = 0;
-
-#if defined (ACE_HAS_SOCKLEN_T)
- socklen_t optlen = 0;
-#elif defined (ACE_HAS_SIZET_SOCKET_LEN)
- size_t optlen = 0;
-#else
- int optlen = 0;
-#endif
-
- setsockopt (s, level, optname, optval, optlen);
- ],
- [
- ace_cv_lib_posix_setsockopt_charp_4=yes
- ],
- [
- ace_cv_lib_posix_setsockopt_charp_4=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_CHARPTR_SOCKOPT)
- ],)
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if mmap() takes a void* first argument,
- ace_cv_lib_posix_voidptr_mmap,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
-#include <sys/mman.h>
- ],
- [
- void *start = 0;
- size_t length = 0;
- int prot = 0;
- int flags = 0;
- int fd = 0;
- off_t offset = 0;
-
- void *result = 0;
-
- result = (void *)mmap(start, length, prot, flags, fd, offset);
- ],
- [
- ace_cv_lib_posix_voidptr_mmap=yes
- ],
- [
- ace_cv_lib_posix_voidptr_mmap=no
- ])
- ], AC_DEFINE(ACE_HAS_VOIDPTR_MMAP),)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if msync is broken, i.e. doesn't accept third "sync" argument.
-dnl This test should come after the test for checking if mmap takes a void*
-dnl argument since we need the ACE_MMAP_TYPE type for this test.
-if test "$ac_cv_func_msync" = yes; then
-ACE_CACHE_CHECK(if msync accepts a third \"sync\" argument,
- ace_cv_lib_broken_msync,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
-
-#if defined (ACE_HAS_VOIDPTR_MMAP)
- /* Needed for some odd OS's (e.g., SGI). */
- typedef void *ACE_MMAP_TYPE;
-#else
- typedef char *ACE_MMAP_TYPE;
-#endif /* ACE_HAS_VOIDPTR_MMAP */
- ],
- [
- ACE_MMAP_TYPE start = 0;
- size_t length = 0;
- int flags = MS_SYNC;
-
- int result;
-
- result = msync(start, length, flags);
- ],
- [
- ace_cv_lib_broken_msync=no
- ],
- [
- dnl Now see if it works with just two arguments
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
-
-#if defined (ACE_HAS_VOIDPTR_MMAP)
- /* Needed for some odd OS's (e.g., SGI). */
- typedef void *ACE_MMAP_TYPE;
-#else
- typedef char *ACE_MMAP_TYPE;
-#endif /* ACE_HAS_VOIDPTR_MMAP */
- ],
- [
- ACE_MMAP_TYPE start = 0;
- size_t length = 0;
-
- int result;
-
- result = msync(start, length);
- ],
- [
- ace_cv_lib_broken_msync=yes
- ],
- [
- dnl If we get to this point then we don't know if msync is
- dnl is broken or not.
- ace_cv_lib_broken_msync=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_NETBSD_MSYNC),)
-fi dnl test "$ac_cv_func_msync" = yes
-
-dnl Check if platform has iostream method ipfx()
-ACE_CACHE_CHECK(for iostream method ipfx(),
- ace_cv_feature_has_iostream_ipfx,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.ipfx();
- ],
- [
- ace_cv_feature_has_iostream_ipfx=yes
- ],
- [
- ace_cv_feature_has_iostream_ipfx=no
- ])
- ], , AC_DEFINE(ACE_LACKS_IOSTREAM_FX))
-
-dnl Check if platform has line-buffered streambufs
-ACE_CACHE_CHECK(for line-buffered streambufs,
- ace_cv_feature_has_linebuffered_streambuf,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.rdbuf()->linebuffered(1);
- ],
- [
- ace_cv_feature_has_linebuffered_streambuf=yes
- ],
- [
- ace_cv_feature_has_linebuffered_streambuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_LINEBUFFERED_STREAMBUF))
-
-dnl Check if platform has unbuffered streambufs
-ACE_CACHE_CHECK(for unbuffered streambufs,
- ace_cv_feature_has_unbuffered_streambuf,[
- AC_TRY_COMPILE(
- [
-#include <iostream.h>
- ],
- [
- cin.rdbuf()->unbuffered(1);
- ],
- [
- ace_cv_feature_has_unbuffered_streambuf=yes
- ],
- [
- ace_cv_feature_has_unbuffered_streambuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_UNBUFFERED_STREAMBUF))
-
-
-dnl Check if signal takes a void (*)(int) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(int) as second argument,
- ace_cv_lib_signal_vi1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int);
- void handler(int) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(int);
- void handler(int) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1_2=yes
- ],
- [
- ace_cv_lib_signal_vi1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(void) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(void) as second argument,
- ace_cv_lib_signal_vv1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(void);
- void handler(void) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vv1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(void);
- void handler(void) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vv1_2=yes
- ],
- [
- ace_cv_lib_signal_vv1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(int, ...) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(int, ...) as second argument,
- ace_cv_lib_signal_vi1a2_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int, ...);
- void handler(int, ...) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1a2_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(int, ...);
- void handler(int, ...) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_vi1a2_2=yes
- ],
- [
- ace_cv_lib_signal_vi1a2_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal takes a void (*)(...) as second argument
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-ACE_CACHE_CHECK(if signal takes a void (*)(...) as second argument,
- ace_cv_lib_signal_va1_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(...);
- void handler(...) { }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_va1_2=yes
- ],
- [
- dnl Check if extern "C" signal handler is required.
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-extern "C"
- {
- typedef void (*SA)(...);
- void handler(...) { }
- }
- ],
- [
- SA nn = handler;
- signal(SIGINT, nn);
- ],
- [
- ace_cv_lib_signal_va1_2=yes
- ],
- [
- ace_cv_lib_signal_va1_2=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_SIG_C_FUNC)
- ],)
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if signal returns a void (*)(int)
-AC_CACHE_CHECK(if signal returns a void (*)(int),
- ace_cv_lib_signal_vi1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(int);
-void foo(SA nn) { }
- ],
- [
-SA nn = SIG_DFL;
-nn = signal(SIGINT, 0);
-foo(nn);
- ],
- [
- ace_cv_lib_signal_vi1_ret=yes
- ],
- [
- ace_cv_lib_signal_vi1_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(void)
-AC_CACHE_CHECK(if signal returns a void (*)(void),
- ace_cv_lib_signal_vv1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(void);
-void foo(SA nn) { }
- ],
- [
-SA nn = SIG_DFL;
-nn = signal(SIGINT, 0);
-foo(nn);
- ],
- [
- ace_cv_lib_signal_vv1_ret=yes
- ],
- [
- ace_cv_lib_signal_vv1_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(int, ...)
-AC_CACHE_CHECK(if signal returns a void (*)(int, ...),
- ace_cv_lib_signal_vi1a2_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(int, ...);
- ],
- [
- SA oo = signal(SIGINT, 0);
- ],
- [
- ace_cv_lib_signal_vi1a2_ret=yes
- ],
- [
- ace_cv_lib_signal_vi1a2_ret=no
- ])
- ])
-
-dnl Check if signal returns a void (*)(...)
-AC_CACHE_CHECK(if signal returns a void (*)(...),
- ace_cv_lib_signal_va1_ret,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
-
-typedef void (*SA)(...);
- ],
- [
- SA oo = signal(SIGINT, 0);
- ],
- [
- ace_cv_lib_signal_va1_ret=yes
- ],
- [
- ace_cv_lib_signal_va1_ret=no
- ])
- ])
-
-if test "$ace_cv_struct_sigaction" = yes; then
-dnl Check if struct sigaction takes a void (*)(int) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(int) handler,
- ace_cv_lib_struct_sigaction_vi1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vi1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vi1_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(void) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(void) handler,
- ace_cv_lib_struct_sigaction_vv1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(void);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vv1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vv1_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(int, ...) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(int, ...) handler,
- ace_cv_lib_struct_sigaction_vi1a2_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(int, ...);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_vi1a2_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_vi1a2_handler=no
- ])
- ])
-
-dnl Check if struct sigaction takes a void (*)(...) handler
- AC_CACHE_CHECK(if struct sigaction takes a void (*)(...) handler,
- ace_cv_lib_struct_sigaction_va1_handler,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- typedef void (*SA)(...);
- void foo(struct sigaction* sa, SA nn) { }
- ],
- [
- struct sigaction sa;
- SA nn = SIG_DFL;
- sa.sa_handler = nn;
- foo(&sa, nn);
- ],
- [
- ace_cv_lib_struct_sigaction_va1_handler=yes
- ],
- [
- ace_cv_lib_struct_sigaction_va1_handler=no
- ])
- ])
-fi dnl test "$ace_cv_struct_sigaction" = yes
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if msgsnd() takes a struct msgbuf* second argument
-ACE_CACHE_CHECK(if msgsnd() takes a struct msgbuf* second argument,
- ace_cv_lib_posix_msgsnd_msgbufp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- struct msgbuf* msgp = 0;
- int msgsz = 0;
- int msgflg = 0;
- msgsnd(msqid, msgp, msgsz, msgflg);
- ],
- [
- ace_cv_lib_posix_msgsnd_msgbufp_2=yes
- ],
- [
- ace_cv_lib_posix_msgsnd_msgbufp_2=no
- ])
- ],
- [
- dnl "ACTIONS-IF-SUCCESSFUL" handled later in configure.in
- ],
- [
- dnl Check if msgsnd() takes a const void* second argument
- ACE_CACHE_CHECK(if msgsnd() takes a const void* second argument,
- ace_cv_lib_posix_msgsnd_cvoidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- const void* msgp = 0;
- int msgsz = 0;
- int msgflg = 0;
- msgsnd(msqid, msgp, msgsz, msgflg);
- ],
- [
- ace_cv_lib_posix_msgsnd_cvoidp_2=yes
- ],
- [
- ace_cv_lib_posix_msgsnd_cvoidp_2=no
- ])
- ],
- [
- dnl Do nothing if msgsnd takes a const void* second argument
- ],
- [
- dnl If we get this far we presumably have a non-const void* second param
- AC_DEFINE(ACE_HAS_NONCONST_MSGSND)
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if msgrcv() takes a void* second argument
-AC_CACHE_CHECK(if msgrcv() takes a void* second argument,
- ace_cv_lib_posix_msgrcv_voidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-#ifndef ACE_LACKS_SYSV_MSG_H
-# include <sys/msg.h>
-#endif
- ],
- [
- int msqid = 0;
- void* msgp = 0;
- int msgsz = 0;
- long msgtyp = 0;
- int msgflg = 0;
- msgrcv(msqid, msgp, msgsz, msgtyp, msgflg);
- ],
- [
- ace_cv_lib_posix_msgrcv_voidp_2=yes
- ],
- [
- ace_cv_lib_posix_msgrcv_voidp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if shmat() takes a void* second argument
-AC_CACHE_CHECK(if shmat() takes a void* second argument,
- ace_cv_lib_posix_shmat_voidp_2,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-# include <sys/ipc.h>
-# include <sys/shm.h>
- ],
- [
- int shmid = 0;
- void* shmaddr = 0;
- int shmflg = 0;
- shmat(shmid, shmaddr, shmflg);
- ],
- [
- ace_cv_lib_posix_shmat_voidp_2=yes
- ],
- [
- ace_cv_lib_posix_shmat_voidp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl TODO: This doesn't work.
-dnl The linux compiler issues a warning regarding the invalid void*
-dnl conversion.
-dnl
-dnl FIXED by adding "-Werror" to compiler flags when using GNU C++
-dnl -Ossama
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check if sigaction() takes a const* second argument
-AC_CACHE_CHECK(if sigaction() takes a const* second argument,
- ace_cv_lib_posix_sigaction_constp_2,[
- AC_TRY_COMPILE(
- [
-#include <signal.h>
- ],
- [
- int signum = 0;
- const struct sigaction* act = 0;
- struct sigaction* oldact = 0;
- sigaction(signum, act, oldact);
- ],
- [
- ace_cv_lib_posix_sigaction_constp_2=yes
- ],
- [
- ace_cv_lib_posix_sigaction_constp_2=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-dnl Check if the wait() system call takes a (union wait *) rather than int *
-ACE_CACHE_CHECK(if wait() takes a (union wait *) rather than int *,
- ace_cv_lib_wait_takes_union_wait_ptr,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/wait.h>
- ],
- [
- int* status = 0;
- int result = 0;
- result=wait(status);
- ],
- [
- ace_cv_lib_wait_takes_union_wait_ptr=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <sys/wait.h>
- ],
- [
- union wait* status = 0;
- int result = 0;
- result=wait(status);
- ],
- [
- ace_cv_lib_wait_takes_union_wait_ptr=yes
- ],
- [
-dnl If we get here then we're screwed! We can't use int* or union wait*.
-dnl It is very unlikely that we will ever get this far. For the sake
-dnl of setting some result, we'll assume that we can actually use int*.
- ace_cv_lib_wait_takes_union_wait_ptr=no
- AC_MSG_WARN(wait() doesn't seem to take either int* or union wait*)
- AC_MSG_WARN(as an argument. Going to assume that int* will work.)
- ])
- ])
- ], AC_DEFINE(ACE_HAS_UNION_WAIT),)
-
-dnl We need to use the ACE_CONVERT_WARNINGS_TO_ERRORS() macro since
-dnl passing a void * just caused implicit conversion warnings when
-dnl using GNU C++, for example.
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check for SVR4 style gettimeofday()
-AC_CACHE_CHECK(if gettimeofday() takes a void * second argument,
- ace_cv_lib_voidptr_gettimeofday,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
- ],
- [
- struct timeval *tv = 0;
- void *tzp = 0;
-
- gettimeofday(tv, tzp);
- ],
- [
- ace_cv_lib_voidptr_gettimeofday=yes
- ],
- [
- ace_cv_lib_voidptr_gettimeofday=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-
-if test "$ace_cv_lib_voidptr_gettimeofday" = no; then
-ACE_CONVERT_WARNINGS_TO_ERRORS( dnl
-[
-dnl Check for old OSF1 style gettimeofday()
- AC_CACHE_CHECK(if gettimeofday() takes a timezone * second argument,
- ace_cv_lib_timezone_gettimeofday,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/time.h>
-#ifndef ACE_LACKS_UNISTD_H
-# include <unistd.h>
-#endif
- ],
- [
- struct timeval *tv = 0;
- struct timezone *tzp = 0;
-
- gettimeofday(tv, tzp);
- ],
- [
- ace_cv_lib_timezone_gettimeofday=yes
- ],
- [
- ace_cv_lib_timezone_gettimeofday=no
- ])
- ])
-]) dnl ACE_CONVERT_WARNINGS_TO_ERRORS
-fi dnl test "$ace_cv_lib_voidptr_gettimeofday" = no
-
-dnl Check for gettimeofday() protoype
-if test "$ace_cv_lib_voidptr_gettimeofday" = yes ||
- test "$ace_cv_lib_timezone_gettimeofday" = yes; then
- ACE_CACHE_CHECK(for gettimeofday() protoype,
- ace_cv_lib_has_gettimeofday_prototype,
- [
- AC_EGREP_CPP(gettimeofday,
- [
-#include <time.h>
-
-#ifdef ACE_LACKS_SYSTIME_H
-# include <sys/time.h>
-#endif
- ],
- [
-dnl We have a gettimeofday prototype
- ace_cv_lib_has_gettimeofday_prototype=yes
- ],
- [
-dnl We don't have a gettimeofday prototype
- ace_cv_lib_has_gettimeofday_prototype=no
- ])
- ],
- [
- if test "$ace_cv_lib_voidptr_gettimeofday" = yes; then
- AC_DEFINE(ACE_HAS_SUNOS4_GETTIMEOFDAY)
- else
- AC_DEFINE(ACE_HAS_TIMEZONE_GETTIMEOFDAY)
- fi
- ],
- [
- if test "$ace_cv_lib_voidptr_gettimeofday" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_GETTIMEOFDAY)
- else
- AC_DEFINE(ACE_HAS_OSF1_GETTIMEOFDAY)
- fi
- ])
-fi dnl Check for gettimeofday() protoype
-
-
-dnl Check if ctime_r() takes two arguments
-if test "$ac_cv_func_ctime_r" = yes; then
- ACE_CACHE_CHECK(if ctime_r() takes two arguments,
- ace_cv_lib_posix_ctime_r_2_params,
- [
- AC_TRY_COMPILE(
- [
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
- ],
- [
- const time_t *t = 0;
- char *buf;
- ctime_r(t, buf);
- ],
- [
- ace_cv_lib_posix_ctime_r_2_params=yes
- ],
- [
- ace_cv_lib_posix_ctime_r_2_params=no
- ])
- ], AC_DEFINE(ACE_HAS_2_PARAM_ASCTIME_R_AND_CTIME_R),)
-fi dnl test "$ac_cv_func_ctime_r" = yes
-
-
-dnl
-dnl SECTION 12: checks for type characteristics
-dnl
-
-dnl struct msghdr stuff
-dnl Only run the following tests if the msghdr structure exists.
-if test "$ace_cv_struct_msghdr" = yes; then
-
- ACE_CACHE_CHECK(if struct msghdr has a msg_accrights member,
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr mh;
- mh.msg_accrights = 0;
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights=yes
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrights=no
- ])
- ])
-
- ACE_CACHE_CHECK(if struct msghdr has a msg_accrightslen member,
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
- ],
- [
- msghdr mh;
- mh.msg_accrightslen = 0;
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen=yes
- ],
- [
- ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen=no
- ])
- ])
-
-dnl Check for 4.4 BSD style struct msghdr members
-dnl The following test should only be run if the above two testsfail.
- if test "$ace_cv_lib_posix_struct_msghdr_has_msg_accrights" = no &&
- test "$ace_cv_lib_posix_struct_msghdr_has_msg_accrightslen" = no; then
- AC_DEFINE(ACE_LACKS_MSG_ACCRIGHTS)
- ACE_CACHE_CHECK(for 4.4 BSD style struct msghdr,
- ace_cv_lib_4_4bsd_msghdr,[
- AC_EGREP_HEADER(msg_control, sys/socket.h,
- [
- ace_cv_lib_4_4bsd_msghdr=yes
- ],
- [
- ace_cv_lib_4_4bsd_msghdr=no
- ])
- ],
- [
- AC_DEFINE(ACE_HAS_4_4BSD_SENDMSG_RECVMSG)
- ],
- [
- AC_MSG_WARN(No supported msghdr structure was found. ACE may not compile or function properly.)
- ])
- fi
-
-dnl Now check if CMSG_DATA is defined if and only if we have 4.4 BSD
-dnl style struct msghdr members. If CMSG_DATA isn't defined, then
-dnl we try to figure out what it should be defined to.
- if test "$ace_cv_lib_4_4bsd_msghdr" = yes; then
- ACE_CACHE_CHECK(if CMSG_DATA is defined,
- ace_cv_lib_cmsg_data,
- [
- AC_EGREP_CPP(ACE_CMSG_DATA_DEFINED,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
-
-#if defined (CMSG_DATA)
- ACE_CMSG_DATA_DEFINED
-#endif
- ],
- [
- ace_cv_lib_cmsg_data=yes
- ],
- [
- ace_cv_lib_cmsg_data=no
-dnl Now check which type of CMSG_DATA #define we need.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- /* This is sloppy. Oh well. :) */
- unsigned char ace_cmsg_data[0];
-
- cmsghdr ace_cmsg;
- ace_cmsg.cmsg_data = ace_cmsg_data;
- ],
- [
- dnl Do nothing
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- /* This is sloppy. Oh well. :) */
- unsigned char ace_cmsg_data[0];
-
- cmsghdr ace_cmsg;
- ace_cmsg.__cmsg_data = ace_cmsg_data;
- ],
- [
- AC_MSG_ERROR(cmsgmdr member '__cmsg_data[0]' not supported by ACE's CMSG_DATA macro)
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-#include <sys/un.h>
- ],
- [
- cmsghdr ace_cmsg;
- ],
- [
- AC_CACHE_VAL(ace_cv_lib_cmsg_data_member,
- ace_cv_lib_cmsg_data_member=no)
- ],
- [
- AC_MSG_ERROR(No supported cmsghdr structure exists. ACE cannot be built without one.)
- ])
- ])
- ])
- ])
- ], ,
- [
- AC_DEFINE(ACE_LACKS_CMSG_DATA_MACRO)
- if test "$ace_cv_lib_cmsg_data_member"=no; then
- AC_DEFINE(ACE_LACKS_CMSG_DATA_MEMBER)
- fi
-
- ])
- fi dnl test "$ace_cv_lib_4_4bsd_msghdr" = yes
-
-fi dnl End struct msghdr_stuff
-
-dnl
-dnl SECTION 13: checks for system services
-dnl
-
-dnl Do not run this test if we are using a cross-compiler.
-if test "$cross_compiling" != yes; then
- ACE_SYS_RESTARTABLE_SYSCALLS
- if test "$ac_cv_sys_restartable_syscalls" = yes; then
- AC_DEFINE(ACE_HAS_SIGNAL_SAFE_OS_CALLS)
- fi
-fi
-
-dnl Check if platform defines ctime() as a macro
-ACE_CACHE_CHECK(for ctime() macro,
- ace_cv_feature_have_ctime_macro,
- [
- AC_EGREP_CPP(ACE_CTIME_MACRO,
- [
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
-
-#if defined (ctime)
- ACE_CTIME_MACRO
-#endif
- ],
- [
- ace_cv_feature_have_ctime_macro=yes
- ],
- [
- ace_cv_feature_have_ctime_macro=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_CTIME),)
-
-dnl Check if platform defines ctime_r, asctime_r, rand_r or getpwnam_r
-dnl as macros.
-ACE_CACHE_CHECK(for reentrant function macros,
- ace_cv_feature_has_broken_r_routines,
- [
- AC_EGREP_CPP(ACE_R_MACROS,
- [
-#ifndef _REENTRANT
-# define _REENTRANT
-#endif
-
-#include <time.h>
-
-#if defined(ACE_LACKS_SYSTIME_H)
-# include <sys/time.h>
-#endif
-
-#if defined (HAVE_PWD_H)
-# include <pwd.h>
-#endif
-
-#if defined (ctime_r) || \
- defined (asctime_r) || \
- defined (rand_r) || \
- defined (getpwnam_r)
- ACE_R_MACROS
-#endif
- ],
- [
- ace_cv_feature_has_broken_r_routines=yes
- ],
- [
- ace_cv_feature_has_broken_r_routines=no
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_R_ROUTINES),)
-
-dnl Check if platform defines sig{empty,fill,add,del}set as macros
-ACE_CACHE_CHECK(for sig{empty fill add del}set macros,
- ace_cv_feature_have_sig_macros,
- [
- AC_EGREP_CPP(ACE_SIG_MACROS,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <signal.h>
-
-#if defined (sigemptyset) && \
- defined (sigfillset) && \
- defined (sigaddset) && \
- defined (sigdelset) && \
- defined (sigismember)
- ACE_SIG_MACROS
-#endif
- ],
- [
- ace_cv_feature_have_sig_macros=yes
- ],
- [
- ace_cv_feature_have_sig_macros=no
- ])
- ], AC_DEFINE(ACE_HAS_SIG_MACROS),)
-
-dnl Check for open() mode masks
-ACE_CACHE_CHECK(for open() mode masks,
- ace_cv_feature_have_open_mode_masks,[
- AC_EGREP_CPP(ACE_OPEN_MODE_MASKS_EXIST,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <fcntl.h>
-
-/* These are ORed so that ACE will not redefine any of them if any of
- them exist. */
-#if defined (S_IRWXU) || \
- defined (S_IRUSR) || \
- defined (S_IWUSR) || \
- defined (S_IXUSR) || \
- defined (S_IRWXG) || \
- defined (S_IRGRP) || \
- defined (S_IWGRP) || \
- defined (S_IXGRP) || \
- defined (S_IRWXO) || \
- defined (S_IROTH) || \
- defined (S_IWOTH) || \
- defined (S_IXOTH)
- ACE_OPEN_MODE_MASKS_EXIST
-#endif
- ],
- [
- ace_cv_feature_have_open_mode_masks=yes
- ],
- [
- ace_cv_feature_have_open_mode_masks=no
- ])
- ], , AC_DEFINE(ACE_LACKS_MODE_MASKS))
-
-
-dnl Check if platform supports POSIX O_NONBLOCK semantics
-ACE_CACHE_CHECK(for POSIX O_NONBLOCK semantics,
- ace_cv_feature_posix_o_nonblock,[
- AC_EGREP_CPP(ACE_POSIX_O_NONBLOCK,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#if defined (O_NONBLOCK)
- ACE_POSIX_O_NONBLOCK
-#endif
- ],
- [
- ace_cv_feature_posix_o_nonblock=yes
- ],
- [
- ace_cv_feature_posix_o_nonblock=no
- ])
- ], AC_DEFINE(ACE_HAS_POSIX_NONBLOCK),)
-
-dnl Check for MAP_FAILED constant
-ACE_CACHE_CHECK(for MAP_FAILED constant,
- ace_cv_lib_have_map_failed,[
- dnl We need the square brackets around "ACEMAPFAILED.+[0-9]" to
- dnl prevent the character class "[0-9]" from becoming "0-9" due to
- dnl M4 quoting.
- AC_EGREP_CPP([ACEMAPFAILED.+[0-9]],
- [
-#include <sys/mman.h>
- ACEMAPFAILED MAP_FAILED
- ],
- [
- ace_cv_lib_have_map_failed=yes
- ],
- [
- ace_cv_lib_have_map_failed=no
- ])
- ],
- [
- dnl Check if platform defines MAP_FAILED as a long constant
- ACE_CACHE_CHECK(if MAP_FAILED is a long constant,
- ace_cv_feature_long_map_failed,[
- dnl We need the square brackets around "ACEMAPFAILED.+[0-9]L" to
- dnl prevent the character class "[0-9]" from becoming "0-9" due to
- dnl M4 quoting.
- AC_EGREP_CPP([ACEMAPFAILED.+[0-9]L],
- [
-#include <sys/mman.h>
- ACEMAPFAILED MAP_FAILED
- ],
- [
- ace_cv_feature_long_map_failed=yes
- ],
- [
- ace_cv_feature_long_map_failed=no
- ])
- ], AC_DEFINE(ACE_HAS_LONG_MAP_FAILED),
- [
- dnl Check if MAP_FAILED is _not_ cast to void *
- ACE_CACHE_CHECK(if MAP_FAILED is not cast to void *,
- ace_cv_have_broken_map_failed,[
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
- ],
- [
- void * foo = MAP_FAILED;
- ],
- [
- ace_cv_have_broken_map_failed=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#include <sys/mman.h>
- ],
- [
- void * foo = (void *) MAP_FAILED;
- ],
- [
- ace_cv_have_broken_map_failed=yes
- ],
- [
- dnl If we get here then we have no idea what is wrong!
- ace_cv_have_broken_map_failed=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_BROKEN_MAP_FAILED),)
- ])
- ],)
-
-dnl Check if platform supports TCP_NODELAY support
-ACE_CACHE_CHECK(for TCP_NODELAY support,
- ace_cv_feature_tcp_nodelay,[
- AC_EGREP_CPP(ACE_TCPNODELAY,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/tcp.h>
-
-#if defined (TCP_NODELAY)
- ACE_TCPNODELAY
-#endif
- ],
- [
- ace_cv_feature_tcp_nodelay=yes
- ],
- [
- ace_cv_feature_tcp_nodelay=no
- ])
- ], , AC_DEFINE(ACE_LACKS_TCP_NODELAY))
-
-dnl Check if platform supports SO_SNDBUF/SO_RCVBUF socket options
-ACE_CACHE_CHECK(for SO_SNDBUF/SO_RCVBUF socket options,
- ace_cv_feature_so_sndbuf_rcvbuf,[
- AC_EGREP_CPP(ACE_SO_BUF,
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/socket.h>
-
-#if defined (SO_SNDBUF) && \
- defined (SO_RCVBUF)
- ACE_SO_BUF
-#endif
- ],
- [
- ace_cv_feature_so_sndbuf_rcvbuf=yes
- ],
- [
- ace_cv_feature_so_sndbuf_rcvbuf=no
- ])
- ], , AC_DEFINE(ACE_LACKS_SOCKET_BUFSIZ))
-
-dnl TODO: We only check for ACE_HAS_AUTOMATIC_INIT_FINI on platforms that
-dnl have SVR4 dynamic linking since ACE doesn't support it otherwise.
-if test "$ac_cv_header_dlfcn_h" = yes &&
- test "$ace_has_svr4_dynamic_linking" = yes; then
-dnl Check if platform calls init/fini automatically
- ACE_CACHE_CHECK(for automatic init/fini calls,
- ace_cv_feature_auto_init_fini,[
- ace_cv_feature_auto_init_fini=yes
- # TODO: We know how to check for this, but we need to:
- #
- # 1. Compile one file.
- # 2. Compile and link another file.
- # 3. Run file in point (2); it returns what we need.
- #
- # How do we do all that?
- ], AC_DEFINE(ACE_HAS_AUTOMATIC_INIT_FINI),)
-fi dnl test "$ac_cv_header_dlfcn_h" = yes &&
- dnl "$ace_has_svr4_dynamic_linking" = yes
-
-dnl Check for recursive thread exit semantics
-if test "$ace_user_enable_threads" = yes; then
- ACE_CACHE_CHECK(for recursive thread exit semantics,
- ace_cv_feature_recursive_thr_exit,[
- ace_cv_feature_recursive_thr_exit=yes
- # TODO: How do we check for recursive thread exit semantics
- ], AC_DEFINE(ACE_HAS_RECURSIVE_THR_EXIT_SEMANTICS),)
-fi
-
-dnl Check for UNIX domain sockets
-ACE_CACHE_CHECK(for UNIX domain sockets,
- ace_cv_feature_unix_sockets,
- [
- AC_TRY_COMPILE(
- [
-#include <sys/un.h>
- ],
- [
- sockaddr_un su;
- ],
- [
- ace_cv_feature_unix_sockets=yes
- ],
- [
- ace_cv_feature_unix_sockets=no
- ])
- ], , AC_DEFINE(ACE_LACKS_UNIX_DOMAIN_SOCKETS))
-
-dnl Check for ACE_Handle_Set optimized for select()
-ACE_CACHE_CHECK(for ACE_Handle_Set optimized for select(),
- ace_cv_feature_handle_set_optimized_for_select,[
- ace_cv_feature_handle_set_optimized_for_select=yes
- # TODO: We know how to check this. We need to:
- #
- # 1. Compile and link a file.
- # 2. Run nm on that file.
- #
- # How do we do that?
- ], AC_DEFINE(ACE_HAS_HANDLE_SET_OPTIMIZED_FOR_SELECT),)
-
-dnl Even we if we don't have IP multicasting, we still need to define
-dnl "ACE_HAS_IP_MULTICAST" since struct ip_mreq gets redefined by ACE.
-dnl What do we do about this problem?
-dnl -Ossama
-dnl Check for IP multicast support
-ACE_CACHE_CHECK(for IP multicast support,
- ace_cv_feature_ip_multicast,[
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <netinet/in.h>
- ],
- [
- ip_mreq im;
- ],
- [
- ace_cv_feature_ip_multicast=yes
- ],
- [
-dnl Some platforms define ip_mreq in <sys/netinet/in.h>.
- AC_TRY_COMPILE(
- [
-#ifndef ACE_LACKS_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#include <sys/netinet/in.h>
- ],
- [
- ip_mreq im;
- ],
- [
- ace_cv_feature_ip_multicast=yes
- ],
- [
- ace_cv_feature_ip_multicast=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_IP_MULTICAST),)
-
-ACE_CACHE_CHECK(if running on an Alpha,
- ace_cv_feature_alpha,[
- case "$target" in
- alpha*)
- ace_cv_feature_alpha=yes
- ;;
- *)
- ace_cv_feature_alpha=no
- ;;
- esac
- ],
- [
- case "$target" in
- *linux*)
- dnl We only define ACE_HAS_ALPHA_TIMER if we are running Linux
- dnl on an Alpha and are using GNU C++!
- if test -n "$GXX"; then
- AC_DEFINE(ACE_HAS_ALPHA_TIMER)
- fi
- ;;
- esac
- ],)
-
-ACE_CACHE_CHECK(if running on a Power PC,
- ace_cv_feature_powerpc,[
- case "$target" in
- powerpc*)
- ace_cv_feature_powerpc=yes
- ;;
- *)
- ace_cv_feature_powerpc=no
- ;;
- esac
- ],
- [
- case "$target" in
- *aix*)
- dnl We don't do anything for AIX since AIX already has a
- dnl hi-res timer function!
- ;;
- *)
- dnl Only define ACE_HAS_POWERPC_TIMER when using GNU C++!
- if test -n "$GXX"; then
- AC_DEFINE(ACE_HAS_POWERPC_TIMER)
- fi
- ;;
- esac
- ],)
-
-ACE_CACHE_CHECK(if running on a Pentium(tm) processor,
- ace_cv_feature_pentium,[
- case "$target" in
- i386-* | i486-* |i586-* | i686-*)
-dnl If we do have a pentium, than define ACE_HAS_PENTIUM and add
-dnl gethrtime.cpp to the source list
- ace_cv_feature_pentium=yes
- ;;
- *)
- ace_cv_feature_pentium=no
- ;;
- esac
- ],
- [
- AC_DEFINE(ACE_HAS_PENTIUM)
- ],)
-AM_CONDITIONAL(ACE_ON_PENTIUM, test X$ace_cv_feature_pentium = Xyes)
-
-
-dnl
-dnl SECTION 14: checks for aggregated features
-dnl TODO: Little by little, get rid of these...
-dnl
-
-
-dnl Macro ACE_HAS_REENTRANT_FUNCTIONS means the following functions
-dnl are usable:
-dnl
-dnl rand_r
-dnl strtok_r
-dnl getpwnam_r (if we don't have, define ACE_LACKS_PWD_REENTRANT_FUNCTIONS)
-dnl ctime_r
-dnl localtime_r
-dnl gmtime_r
-dnl asctime_r
-dnl * getprotobyname_r
-dnl * getprotobynumber_r
-dnl * gethostbyaddr_r
-dnl * gethostbyname_r
-dnl * getservbyname_r
-dnl
-dnl Those marked with '*' are NOT usable if
-dnl ACE_LACKS_NETDB_REENTRANT_FUNCTIONS) is defined.
-dnl
-dnl The time has come to create feature macros for each of these...
-dnl With the separate feature macros, we will define (for now)
-dnl ACE_HAS_REENTRANT_FUNCTIONS only when all of those WITHOUHT a '*'
-dnl are defined. Also, if any of those with '*' are missing, we will
-dnl define ACE_LACKS_NETDB_REENTRANT_FUNCTIONS.
-
-dnl Don't bother with reentrant functions if they are disabled by the user.
-if test "$ace_user_enable_reentrant_funcs" = yes &&
- test "$ac_cv_func_rand_r" = yes &&
- test "$ac_cv_func_strtok_r" = yes &&
- test "$ac_cv_func_ctime_r" = yes &&
- test "$ac_cv_func_localtime_r" = yes &&
- test "$ac_cv_func_gmtime_r" = yes &&
- test "$ac_cv_func_asctime_r" = yes; then
- AC_DEFINE(ACE_HAS_REENTRANT_FUNCTIONS)
-fi
-
-dnl Don't bother with reentrant functions if they are disabled by the user.
-if test "$ace_user_enable_reentrant_funcs" = no ||
- test "$ac_cv_func_getprotobyname_r" = no ||
- test "$ac_cv_func_getprotobynumber_r" = no ||
- test "$ac_cv_func_gethostbyaddr_r" = no ||
- test "$ac_cv_func_gethostbyname_r" = no ||
- test "$ac_cv_func_getservbyname_r" = no; then
- AC_DEFINE(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS)
-fi
-
-dnl FIXME!!!
-dnl The following is a kludge until the netdb reentrant function
-dnl number of arguments is handled.
-case "$target" in
- *linux*) AC_DEFINE(ACE_LACKS_NETDB_REENTRANT_FUNCTIONS);;
- *) ;;
-esac
-
-
-dnl Macro ACE_LACKS_SOME_POSIX_PROTOTYPES implies any of the following
-dnl features:
-dnl
-dnl ! ACE_HAS_MSGSND_MSGBUFP_2
-dnl ! ACE_LACKS_MSGRCV_VOIDP_2
-dnl ! ACE_LACKS_SHMAT_VOIDP_2
-dnl ! ACE_LACKS_SIGACTION_CONSTP_2
-dnl
-dnl So, for now, we define it if any of those were autoconf'ed.
-
-if test "$ace_cv_lib_posix_msgsnd_msgbufp_2" = yes ||
- test "$ace_cv_lib_posix_msgrcv_voidp_2" != yes ||
- test "$ace_cv_lib_posix_shmat_voidp_2" != yes ||
- test "$ace_cv_lib_posix_sigaction_constp_2" != yes; then
- AC_DEFINE(ACE_LACKS_SOME_POSIX_PROTOTYPES)
-fi
-
-if test "$ac_cv_func_msgctl" = yes &&
- test "$ac_cv_func_msgget" = yes &&
- test "$ac_cv_func_msgrcv" = yes &&
- test "$ac_cv_func_semctl" = yes &&
- test "$ac_cv_func_semget" = yes &&
- test "$ac_cv_func_semop" = yes &&
- test "$ac_cv_func_shmat" = yes &&
- test "$ac_cv_func_shmctl" = yes &&
- test "$ac_cv_func_shmdt" = yes &&
- test "$ac_cv_func_shmget" = yes; then
- AC_DEFINE(ACE_HAS_SYSV_IPC)
-fi
-
-if test "$ac_cv_func_shmat" != yes ||
- test "$ac_cv_func_shmctl" != yes ||
- test "$ac_cv_func_shmdt" != yes ||
- test "$ac_cv_func_shmget" != yes; then
- AC_DEFINE(ACE_LACKS_SYSV_SHMEM)
-fi
-
-dnl Check for what POSIX threads draft we have
-AC_MSG_CHECKING(which POSIX thread library was found)
-
-ace_has_pthreads=no
-
-dnl Check if we have Pthreads Draft 4
-dnl if test "$ac_cv_func_pthread_delay_np" = yes &&
-if test "$ac_cv_func_pthread_mutexattr_create" = yes &&
-dnl test "$ac_cv_func_pthread_mutexattr_setkind_np" = yes &&
- test "$ac_cv_func_pthread_mutexattr_delete" = yes &&
- test "$ac_cv_func_pthread_condattr_delete" = yes &&
- test "$ac_cv_func_pthread_condattr_create" = yes &&
- test "$ac_cv_func_pthread_setprio" = yes &&
- test "$ac_cv_func_pthread_getprio" = yes &&
-dnl test "$ac_cv_func_pthread_getspecific" = yes &&
- test "$ac_cv_func_pthread_setcancel" = yes &&
- test "$ac_cv_func_pthread_setasynccancel" = yes &&
- test "$ac_cv_func_pthread_kill" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 4)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT4)
-dnl Check if we have Pthreads Draft 6
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_attr_setprio" = yes &&
- test "$ac_cv_func_pthread_attr_getprio" = yes &&
- test "$ac_cv_func_pthread_setintr" = yes &&
- test "$ac_cv_func_pthread_setintrtype" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 6)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT6)
-dnl Check if we have Pthreads Draft 7
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_setschedparam" = yes &&
- test "$ac_cv_func_pthread_getschedparam" = yes &&
- test "$ac_cv_func_pthread_setcancelstate" = yes &&
- test "$ac_cv_func_pthread_setcanceltype" = yes &&
- test "$ace_has_sched_yield" != yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft 7)
- AC_DEFINE(ACE_HAS_PTHREADS_DRAFT7)
-dnl Check if we have Pthreads Draft Standard
-elif test "$ac_cv_func_pthread_mutexattr_init" = yes &&
- test "$ac_cv_func_pthread_mutexattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_destroy" = yes &&
- test "$ac_cv_func_pthread_condattr_init" = yes &&
- test "$ac_cv_func_pthread_setschedparam" = yes &&
- test "$ac_cv_func_pthread_getschedparam" = yes &&
- test "$ac_cv_func_pthread_setcancelstate" = yes &&
- test "$ac_cv_func_pthread_setcanceltype" = yes &&
- test "$ace_has_sched_yield" = yes; then
- ace_has_pthreads=yes
- AC_MSG_RESULT(POSIX Threads Draft Standard)
- AC_DEFINE(ACE_HAS_PTHREADS_STD)
-else
- ace_has_pthreads=no
- AC_MSG_RESULT(none)
-fi dnl PTHREAD DRAFT CHECKS
-
-dnl Check if we have UNIX International threads
-AC_MSG_CHECKING(if a UNIX International thread library was found)
-if test "$ace_has_sthreads" = yes; then
- AC_MSG_RESULT(yes)
-else
- AC_MSG_RESULT(no)
-fi
-
-if test "$ace_user_enable_threads" != yes ||
- test "$ace_has_pthreads" != yes &&
- test "$ace_has_sthreads" != yes; then
- dnl We don't have a usable thread library!
- ace_user_enable_threads=no
- dnl Make sure _REENTRANT and _THREAD_SAFE are not in the
- dnl preprocessor flags since thread support is being disabled.
- dnl Removal of these flags is only performed if the configure script
- dnl added them.
- if test -n "$ACE_THR_CPPFLAGS"; then
-changequote(, )dnl
- CPPFLAGS=`eval "echo $CPPFLAGS | sed -e 's/$ACE_THR_CPPFLAGS//' -e 's/-D_THREAD_SAFE\(=[0-9]*\)\?//'"`
-changequote([, ])dnl
- fi
-
- AC_MSG_WARN(It appears that you do NOT have any usable thread libraries)
- AC_MSG_WARN(or thread support was explicitly disabled.)
- AC_MSG_WARN(Disabling thread support.)
- dnl ACE uses different versions of readdir_r depending on the thread
- dnl library being used, i.e. on the ACE_HAS_*THREADS* macros. Since
- dnl it doesn't seem like a good idea to define any ACE_HAS_*THREADS*
- dnl macro if ACE won't be supporting threads, define ACE_LACKS_READDIR_R
- dnl regardless if readdir_r() exists.
- if test "$ac_cv_func_readdir_r" = yes; then
- AC_MSG_WARN(Disabling support for readdir_r() since thread support)
- AC_MSG_WARN(is being disabled.)
- AC_DEFINE(ACE_LACKS_READDIR_R)
- fi dnl test "$ac_cv_func_readdir_r" = yes
-fi dnl
-
-if test "$ace_user_enable_threads" = yes; then
-dnl If we get this far then we have threads.
-dnl FIXME: The "_POSIX" macros may need to be defined _before_ the checks for
-dnl reentrant functions! However, we don't want to define them if
-dnl the UNIX International threads library was detected.
- AC_DEFINE(ACE_HAS_THREADS)
- AC_DEFINE(ACE_MT_SAFE)
- ACE_CPPFLAGS="$ACE_CPPFLAGS $ACE_THR_CPPFLAGS"
- if test "$ace_has_pthreads" = yes &&
- test "$ace_has_sthreads" != yes; then
- AC_DEFINE(_POSIX_THREADS)
- AC_DEFINE(_POSIX_THREAD_SAFE_FUNCTIONS)
- AC_DEFINE(_POSIX_PTHREAD_SEMANTICS)
- fi dnl test "$ace_has_pthreads" = yes
-
- if test "$ace_has_pthreads" = yes; then
-
- dnl Check if OS requires non-null status pointer for ::pthread_join ()
- dnl
- dnl This test must be performed after the POSIX threads implementation
- dnl that the platform supports has been determined.
- ACE_CACHE_CHECK(for pthread_join null status pointer support,
- ace_cv_have_null_status_pthread_join,[
- AC_EGREP_CPP(WE_HAVE_PTHREADS_D4,
- [
-#if defined (ACE_HAS_PTHREADS) && defined (ACE_HAS_PTHREADS_DRAFT4)
-/* This test is only valid for Pthreads Draft 4 */
-WE_HAVE_PTHREADS_D4
-#endif
- ],
- [
- AC_TRY_RUN(
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#include <pthread.h>
-
-/* _THREAD_SAFE is defined in <pthread.h> on some platforms. */
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#include <stdio.h>
-
-#ifdef __cplusplus
-extern "C"
-#endif
-void *
-nothing (void *unused)
-{
- return (void *) 34;
-};
-
-int
-main (int argc, char *argv[])
-{
- pthread_attr_t attr;
- pthread_t id;
- void *status;
- int retval = 0;
-
- /* ----- */
- /* We return 0 on error for these calls since we only want to
- return an error status if pthread_join fails. If these calls
- fail then we've got other problems! */
- if (pthread_attr_create (&attr) != 0) return 0 /*1*/;
-
- if (pthread_create (&id, attr, nothing, 0) != 0) return 0 /*2*/;
-
- if (pthread_attr_delete (&attr) != 0) return /*3*/;
- /* ----- */
-
- /* With a second (status) arg of 0, LynxOS 3.0.0 pthread_join ()
- will fail with errno 14 (address fault detected). */
- if (pthread_join (id, 0) == -1) {
- fprintf (stderr, "%s: %d; ", __FILE__, __LINE__);
- perror ("pthread_join");
- retval = 1;
- }
-
- if (pthread_join (id, &status) == -1) {
- fprintf (stderr, "%s: %d; ", __FILE__, __LINE__);
- perror ("pthread_join");
- retval = 2;
- }
-
- return retval;
-}
- ],
- [
- ace_cv_have_null_status_pthread_join=yes
- ],
- [
- ace_cv_have_null_status_pthread_join=no
- ],
- [
- dnl If we are cross-compiling let's hope that
- dnl that we have a working null status pointer
- dnl for pthread_join.
- ace_cv_have_null_status_pthread_join=yes
- ])
- ],
- [
- ace_cv_have_null_status_pthread_join=yes
- ])
- ], , AC_DEFINE(ACE_LACKS_NULL_PTHREAD_STATUS))
-
- dnl Check if platform needs to #include <sched.h> to get thread
- dnl scheduling defs.
- ACE_CACHE_CHECK([if sched.h is needed for thread scheduling definitions],
- [ace_cv_needs_sched_h],
- [
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_STHREADS
-#include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-#include <pthread.h>
-#endif
- ],
- [
-int foo = SCHED_OTHER;
- ],
- [
- ace_cv_needs_sched_h=no
- ],
- [
- AC_TRY_COMPILE(
- [
-#ifdef ACE_HAS_STHREADS
-#include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-#include <pthread.h>
-#endif
-
-#include <sched.h>
- ],
- [
-int foo = SCHED_OTHER;
- ],
- [
- ace_cv_needs_sched_h=yes
- ],
- [
- dnl We're hosed if we get here!
- ace_cv_needs_sched_h=no
- ])
- ])
- ],
- [
- AC_DEFINE(ACE_NEEDS_SCHED_H)
- ],)
-
- dnl Check if platform only supports SCHED_OTHER scheduling policy
- dnl
- dnl This test must be performed after the POSIX threads implementation
- dnl that the platform supports has been determined.
- ACE_CACHE_CHECK(if SCHED_OTHER is only scheduling policy,
- ace_cv_feature_only_have_sched_other,[
- AC_EGREP_CPP(WE_ONLY_HAVE_SCHED_OTHER,
- [
-#ifdef ACE_HAS_STHREADS
-# include <thread.h>
-#endif
-
-#ifdef ACE_HAS_PTHREADS
-# include <pthread.h>
-#endif
-
-#if defined (ACE_NEEDS_SCHED_H)
-# include <sched.h>
-#endif
-
- /* These are ORed so that ACE will not redefine
- any of them if any of them exist. */
-#if !defined (SCHED_FIFO) && \
- !defined (SCHED_RR) && \
- defined (SCHED_OTHER)
- WE_ONLY_HAVE_SCHED_OTHER
-#endif
- ],
- [
- ace_cv_feature_only_have_sched_other=yes
- ],
- [
- AC_TRY_RUN(
- [
-#ifndef _REENTRANT
-#define _REENTRANT
-#endif
-
-#include <pthread.h>
-
-/* _THREAD_SAFE is defined in <pthread.h> on some platforms. */
-#ifndef _THREAD_SAFE
-#define _THREAD_SAFE
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-
-int main ()
-{
- pthread_attr_t ace_attr;
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_create (&ace_attr) != 0)
-#else
- if (pthread_attr_init (&ace_attr) != 0)
-#endif
- {
- perror ("pthread_attr_init");
- return 0; /* Return "successfully" since only the policy call
- will return with an error for this test. */
- }
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_setsched (&ace_attr, SCHED_FIFO) != 0)
-#else
- if (pthread_attr_setschedpolicy (&ace_attr, SCHED_FIFO) != 0)
-#endif
- {
- perror ("pthread_attr_setschedpolicy");
- return -1;
- }
-
-#if defined (ACE_HAS_PTHREADS_DRAFT4)
- if (pthread_attr_delete (&ace_attr) != 0)
-#else
- if (pthread_attr_destroy (&ace_attr) != 0)
-#endif
- {
- perror ("pthread_attr_destroy");
- return 0; /* Return "successfully" since only the policy call
- will return with an error for this test. */
- }
-
- return 0;
-}
- ],
- [
- ace_cv_feature_only_have_sched_other=no
- ],
- [
- ace_cv_feature_only_have_sched_other=yes
- ],
- [
- dnl We only get here if polices other than SCHED_OTHER
- dnl were found in the headers and we are cross-compiling.
- dnl
- dnl If we are cross-compiling let's hope that the
- dnl scheduling policies found in the headers
- dnl besides SCHED_OTHER (e.g. SCHED_FIFO, SCHED_RR)
- dnl are supported.
- ace_cv_feature_only_have_sched_other=no
- ])
- ])
- ], AC_DEFINE(ACE_HAS_ONLY_SCHED_OTHER),)
- fi dnl test "$ace_has_pthreads" = yes
-fi dnl test "$ace_user_enable_threads" = yes
-
-
-if test "$ac_cv_header_libc_h" != yes ||
- test "$ac_cv_header_osfcn_h" != yes; then
- AC_DEFINE(ACE_HAS_CPLUSPLUS_HEADERS)
-fi
-
-
-
-if test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" = yes; then
- AC_DEFINE(ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES)
-elif test "$ace_cv_lib_signal_vi1_2" != yes &&
- test "$ace_cv_lib_signal_vv1_2" != yes &&
- test "$ace_cv_lib_signal_vi1a2_2" != yes &&
- test "$ace_cv_lib_signal_va1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" != yes &&
- test "$ace_cv_lib_signal_vv1_ret" != yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" != yes &&
- test "$ace_cv_lib_signal_va1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_va1_handler" = yes; then
- AC_DEFINE(ACE_HAS_LYNXOS_SIGNALS)
- AC_DEFINE(ACE_HAS_TANDEM_SIGNALS)
- AC_DEFINE(ACE_HAS_IRIX_53_SIGNALS)
- AC_DEFINE(ACE_HAS_SUNOS4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1a2_2" = yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" = yes; then
- AC_DEFINE(ACE_HAS_SPARCWORKS_401_SIGNALS)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes; then
- AC_DEFINE(ACE_HAS_SVR4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vv1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" = yes; then
- AC_DEFINE(ACE_HAS_SVR4_SIGNAL_T)
-elif test "$ace_cv_lib_signal_vi1_2" = yes &&
- test "$ace_cv_lib_signal_vi1_ret" != yes &&
- test "$ace_cv_lib_signal_vv1_ret" != yes &&
- test "$ace_cv_lib_signal_vi1a2_ret" != yes &&
- test "$ace_cv_lib_signal_va1_ret" = yes &&
- test "$ace_cv_lib_struct_sigaction_vi1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vv1_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_vi1a2_handler" != yes &&
- test "$ace_cv_lib_struct_sigaction_va1_handler" = yes; then
- AC_DEFINE(ACE_HAS_UNIXWARE_SVR4_SIGNAL_T)
-fi dnl ACE_HAS_CONSISTENT_SIGNAL_PROTOTYPES
-
-dnl
-dnl SECTION 15: Final checks
-dnl
-
-dnl Set known platform specific flags
-ACE_SET_PLATFORM_MACROS
-
-dnl Make final substitutions and defines
-if test "$ace_u_long_long_typedef_set" = yes; then
- AC_DEFINE_UNQUOTED(ACE_UINT64_TYPEDEF, $ACE_UINT64)
-fi
-
-dnl Combine package set flags with user's flags.
-dnl User's flags go after package flags to allow user to override
-dnl package defaults.
-dnl X_CFLAGS comes from AC_PATH_XTRA. It may include, for example,
-dnl additional include file paths or macros that need to be defined
-dnl in order for X11 related files to be compiled properly.
-if test "$ace_user_enable_optimize"; then
- dnl We want OCXXFLAGS to be on the end, so we use CXXFLAGS,
- dnl not ACE_CXXFLAGS!
- CXXFLAGS="$CXXFLAGS $OCXXFLAGS"
- CFLAGS="$CFLAGS $OCFLAGS"
-fi
-CXXFLAGS="$ACE_CXXFLAGS $X_CFLAGS $CXXFLAGS"
-CFLAGS="$ACE_CFLAGS $X_CFLAGS $CFLAGS"
-CPPFLAGS="$ACE_CPPFLAGS $CPPFLAGS"
-LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
-dnl The following tests should be performed _after_ the bulk of the
-dnl ACE macros have been defined.
-
-dnl Flush the cache so that it is easier to debug the configure script
-dnl if the following integrity check fails.
-AC_CACHE_SAVE
-
-dnl Verify the integrity of the current configuration.
-ACE_CACHE_CHECK(if generated ACE configuration is usable,
- ace_cv_configuration_is_usable,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_configuration_is_usable=yes
- ],
- [
- ace_cv_configuration_is_usable=no
- ])
- ])
- ],
- [
- dnl Looks good! Do nothing.
- dnl It appears that ace/OS.cpp compiled. If it didn't compile then
- dnl there would be no chance that the rest of ACE would compile.
- ],
- [
- AC_MSG_ERROR(
- [
-The generated configuration appears to be unusable. Please verify
-that your system path and environment variables are correct. If they
-appear to be correct then please send the maintainer of this configure
-script $ACE_CONFIGURE_MAINTAINER the \`config.log' file and
-the following information:
-
- ACE \`configure' Script Information
- ==================================
- [RCS] translit([$Id$], $") dnl @@ Ignore the following quote:"
-
- C++ Compiler: $CXX
- C++ Preprocessor: $CXXCPP
- C++ Flags: $CXXFLAGS
- Preprocessor Flags: $CPPFLAGS
- Linker: $LD
- Linker Flags: $LDFLAGS
- Libraries: $LIBS
- System type information:
- Build: $build Host: $host Target: $target
-
-In the meantime, please use the stock ACE build procedure detailed in
-the file \`ACE-INSTALL.html'.
- ])
- ])
-
-dnl Check for ACE_IOStream support
-ACE_CACHE_CHECK(for ACE_IOStream support,
- ace_cv_feature_ace_iostream,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/IOStream.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_feature_ace_iostream=yes
- ],
- [
- ace_cv_feature_ace_iostream=no
- ])
- ])
- ], , AC_DEFINE(ACE_LACKS_ACE_IOSTREAM))
-
-dnl Check if ACE needs minimum iostream header inclusion
-ACE_CACHE_CHECK(if ACE needs minimum iostream header inclusion,
- ace_cv_lib_minimum_iostream,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_minimum_iostream=no
- ],
- [
- dnl Now check if ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_minimum_iostream=yes
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_minimum_iostream=no
- ])
- ])
- ])
- ], AC_DEFINE(ACE_HAS_MINIMUM_IOSTREAMH_INCLUSION),)
-
-dnl @@ I don't think that this test is correct. The only way I could
-dnl get ACE_Addr::sap_any to work was to explicitly cast it to the
-dnl a constant reference of the derived type.
-dnl -Ossama
-dnl Check if compiler can't handle the static ACE_Addr::sap_any construct
-ACE_CACHE_CHECK(for ACE_addr::sap_any support,
- ace_cv_lib_sap_any_support,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/FILE_Addr.h"
- ],
- [
- ACE_FILE_Addr ace_file ((const ACE_FILE_Addr &) ACE_Addr::sap_any);
- ],
- [
- ace_cv_lib_sap_any_support=yes
- ],
- [
- dnl Now check if ACE_HAS_BROKEN_SAP_ANY makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_HAS_BROKEN_SAP_ANY
-#include "ace/FILE_Addr.h"
- ],
- [
- ACE_FILE_Addr ace_file ((const ACE_FILE_Addr &) ACE_Addr::sap_any);
- ],
- [
- ace_cv_lib_sap_any_support=no
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_sap_any_support=yes
- ])
- ])
- ])
- ],, AC_DEFINE(ACE_HAS_BROKEN_SAP_ANY))
-
-dnl Check if ACE needs conversion to pass ACE_TTY_IO to DEV_Connector
-ACE_CACHE_CHECK(if ACE needs conversion to pass ACE_TTY_IO to DEV_Connector,
- ace_cv_lib_need_dev_io_conv,
- [
- dnl We want an empty ace/config.h to prevent multiple defines
- dnl with Autoconf's confdefs.h
- ACE_USE_TEMP_FILE(ace/config.h,
- [
- dnl Now run the compilation test
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#include "ace/OS.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_need_dev_io_conv=no
- ],
- [
- dnl Now check if ACE_NEEDS_DEV_IO_CONVERSION makes
- dnl compilation work!
- ACE_TRY_COMPILE([-I. -I${srcdir}],
- [
-#if defined(ACE_UINT64_TYPEDEF)
- typedef ACE_UINT64_TYPEDEF ACE_UINT64;
-#endif /* ACE_UINT64_TYPEDEF */
-
-#define ACE_NEEDS_DEV_IO_CONVERSION
-#include "ace/DEV_Connector.cpp"
- ],
- [
- int a=0; a += 1;
- ],
- [
- ace_cv_lib_need_dev_io_conv=yes
- ],
- [
- dnl If we get here, then we have no idea what is wrong!
- ace_cv_lib_need_dev_io_conv=no
- ])
- ])
- ])
- ], AC_DEFINE(ACE_NEEDS_DEV_IO_CONVERSION),)
-
-dnl End ACE macro tests!
-
-dnl Substitute whatever X libraries ACE needs, if any.
-AC_SUBST(ACE_XLIBS)
-
-dnl Prepend purify and quantify command lines if purify and quantify are
-dnl enabled. Otherwise, PURELINK and PRELINK will just be "blank."
-LD="$PURELINK $PRELINK $LD"
-dnl LDFLAGS="$ACE_LDFLAGS $LDFLAGS"
-
-dnl AC_SUBST(LDFLAGS)
-dnl AC_SUBST(LIBOBJS)
-
-dnl These definitions are expanded in the makefile and ace-config
-if test "$no_x" != yes; then
- ACE_LIBDIR="${X_LIBS} -L\${libdir}"
-else
- ACE_LIBDIR='-L${libdir}'
-fi
-ACE_LIBS="${X_PRE_LIBS} ${ACE_XLIBS} ${X_EXTRA_LIBS} ${LIBS}"
-ACE_INCLUDEDIR='-I${includedir}'
-
-AC_SUBST(ACE_LIBDIR)
-AC_SUBST(ACE_LIBS)
-AC_SUBST(ACE_INCLUDEDIR)
-
-dnl These definitions are expanded in the makefile and ace-config
-#TAO_LIBDIR='-L${libdir}'
-#TAO_LIBS="-lACE ${LIBS}"
-#TAO_INCLUDEDIR='-I${includedir}'
-#
-#AC_SUBST(TAO_LIBDIR)
-#AC_SUBST(TAO_LIBS)
-#AC_SUBST(TAO_INCLUDEDIR)
-
-dnl Force CXXFLAGS to be substituted in Makefiles that don't "need" them.
-AC_SUBST(CXXFLAGS)
-
-dnl
-dnl SECTION 16: `AC_OUTPUT([FILE...])'
-dnl
-dnl
-dnl We can finally create all the files listed here; Makefile is
-dnl created from Makefile.in, etc. Top-level Makefiles should be
-dnl created first.
-
-AC_OUTPUT([
- Makefile
- ace-config
- ace-config.1
- aceConf.sh
- ace/Makefile
- apps/Makefile
- apps/gperf/Makefile
- apps/gperf/src/Makefile
- man/Makefile
- man/html/Makefile
- man/man3/Makefile
- netsvcs/Makefile
- netsvcs/clients/Makefile
- netsvcs/clients/Logger/Makefile
- netsvcs/clients/Naming/Makefile
- netsvcs/clients/Naming/Client/Makefile
- netsvcs/clients/Naming/Dump_Restore/Makefile
- netsvcs/clients/Tokens/Makefile
- netsvcs/clients/Tokens/collection/Makefile
- netsvcs/clients/Tokens/deadlock/Makefile
- netsvcs/clients/Tokens/invariant/Makefile
- netsvcs/clients/Tokens/manual/Makefile
- netsvcs/clients/Tokens/mutex/Makefile
- netsvcs/clients/Tokens/rw_lock/Makefile
- netsvcs/lib/Makefile
- netsvcs/servers/Makefile
- tests/Makefile
- ],
- [
- echo ""
- echo "Configuration of ACE is now complete."
- echo ""
- ])
-
-
-
-dnl Configure the TAO directory if it exists.
-dnl if test -d $srcdir/TAO; then
-dnl AC_CONFIG_SUBDIRS (TAO)
-dnl fi