summaryrefslogtreecommitdiff
path: root/m4/ace.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/ace.m4')
-rw-r--r--m4/ace.m4594
1 files changed, 594 insertions, 0 deletions
diff --git a/m4/ace.m4 b/m4/ace.m4
new file mode 100644
index 00000000000..da71197aff3
--- /dev/null
+++ b/m4/ace.m4
@@ -0,0 +1,594 @@
+dnl -------------------------------------------------------------------------
+dnl $Id$
+dnl
+dnl ace.m4
+dnl
+dnl ACE M4 include file which contains ACE specific M4 macros
+dnl for enabling/disabling certain ACE features.
+dnl
+dnl -------------------------------------------------------------------------
+
+dnl Copyright (C) 1998, 1999, 2000 Ossama Othman
+dnl
+dnl All Rights Reserved
+dnl
+dnl This library is free software; you can redistribute it and/or
+dnl modify it under the current ACE distribution terms.
+dnl
+dnl This library is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+dnl Macros that add ACE configuration options to a `configure' script.
+dnl ACE_CONFIGURATION_OPTIONS
+AC_DEFUN(ACE_CONFIGURATION_OPTIONS, dnl
+[
+ AC_ARG_ENABLE(log-msg-prop,
+ [ --enable-log-msg-prop enable threads inheriting
+ ACE_Log_Msg properties from parent
+ thread [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE(ACE_THREADS_DONT_INHERIT_LOG_MSG)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-log-msg-prop)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(logging,
+ [ --enable-logging enable ACE logging macros [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE(ACE_NLOGGING)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-logging)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(malloc-stats,
+ [ --enable-malloc-stats enable malloc statistics
+ collection [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_HAS_MALLOC_STATS)
+ ;;
+ no)
+ dnl nothing to do
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-malloc-stats)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(pi-pointers,
+ [ --enable-pi-pointers enable pos. indep. pointers [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_HAS_POSITION_INDEPENDENT_POINTERS)
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-pi-pointers)
+ ;;
+ esac
+ ],
+ [
+ AC_DEFINE(ACE_HAS_POSITION_INDEPENDENT_POINTERS)
+ ])
+
+ AC_ARG_ENABLE(probe,
+ [ --enable-probe enable ACE_Timeprobes [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_COMPILE_TIMEPROBES)
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-probe)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(static-obj-mgr,
+ [ --enable-static-obj-mgr enable static Object_Manager [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ dnl nothing to do
+ ;;
+ no)
+ AC_DEFINE(ACE_HAS_NONSTATIC_OBJECT_MANAGER)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-static-obj-mgr)
+ ;;
+ esac
+ ],)
+
+
+ AC_ARG_ENABLE(threads,
+ [ --enable-threads enable thread support [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_threads=yes
+ ;;
+ no)
+ ace_user_enable_threads=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-threads)
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_threads=yes
+ ])
+
+ AC_ARG_ENABLE(verb-not-sup,
+ [ --enable-verb-not-sup enable verbose ENOTSUP reports [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(ACE_HAS_VERBOSE_NOTSUP)
+ ;;
+ no)
+ dnl Do nothing
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-verb-not-sup)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(trace,
+ [ --enable-trace enable ACE tracing [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ ;;
+ no)
+ AC_DEFINE(ACE_NTRACE)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-trace)
+ ;;
+ esac
+ ],
+ [
+ AC_DEFINE(ACE_NTRACE)
+ ])
+
+ AC_ARG_ENABLE(xt-reactor,
+ [ --enable-xt-reactor build support for the XtReactor [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_PATH_XTRA
+dnl Here, if X isn't found or the user sets "--without-x" on the command
+dnl line, then "no_x" is set to "yes."
+ if test "$no_x" != yes; then
+ ACE_XLIBS="-lX11 -lXt"
+ ace_user_enable_xt_reactor=yes
+ else
+ ACE_XLIBS=""
+ ace_user_enable_xt_reactor=no
+ AC_MSG_WARN(X was not found or it was disabled.)
+ AC_MSG_WARN(ACE_XtReactor will not be enabled.)
+ fi
+ ;;
+ no)
+ ACE_XLIBS=""
+ ace_user_enable_xt_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-xt-reactor)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(fl-reactor,
+ [ --enable-fl-reactor build support for the FlReactor [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_MSG_ERROR(--enable-fl-reactor currently unimplemented)
+ ace_user_enable_fl_reactor=yes
+ ;;
+ no)
+ AC_MSG_ERROR(--enable-fl-reactor currently unimplemented)
+ ace_user_enable_fl_reactor=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-fl-reactor)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_WITH(gperf,
+ [ --with-gperf compile the gperf program [default=yes]],
+ [
+ case "${withval}" in
+ yes)
+ ace_user_with_gperf=yes
+ AC_DEFINE(ACE_HAS_GPERF)
+ if test -n "$GPERF"; then
+ AC_MSG_WARN(gperf program already exists)
+ AC_MSG_WARN(existing gperf may be overwritten during installation)
+ fi
+ ;;
+ no)
+ ace_user_with_gperf=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${withval} for --with-gperf)
+ ;;
+ esac
+ ],
+ [
+ ace_user_with_gperf=yes
+ AC_DEFINE(ACE_HAS_GPERF)
+ if test -n "$GPERF"; then
+ AC_MSG_WARN(gperf program already exists)
+ AC_MSG_WARN(existing gperf may be overwritten during installation)
+ fi
+ ])
+AM_CONDITIONAL(COMPILE_GPERF, test X$ace_user_with_gperf = Xyes)
+
+ AC_ARG_WITH(orbix,
+ [ --with-orbix[=DIR] compile ACE with Orbix [default=no]],
+ [
+ case "${withval}" in
+ yes)
+ AC_MSG_WARN(Orbix configure support not implemented yet.)
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_WARN(Orbix configure support not implemented yet.)
+ ;;
+ esac
+ ],)
+
+#AC_ARG_WITH(tao,
+# [ --with-tao build TAO (the ACE ORB) [default=yes]],
+# [
+# case "${withval}" in
+# yes)
+# ace_user_with_tao=yes
+# ;;
+# no)
+# ;;
+# *)
+# AC_MSG_ERROR(bad value ${withval} for --with-tao)
+# ;;
+# esac
+# ],
+# [
+# ace_user_with_tao=yes
+# ])
+
+ AC_ARG_WITH(tli-device,
+ [ --with-tli-device[=DEV] device for TCP on TLI [default=/dev/tcp]],
+ [
+ case "${withval}" in
+ yes)
+ AC_MSG_ERROR(Specify the TLI/TCP device if you use this option.)
+ ;;
+ no)
+ ;;
+ *)
+ if test -e "${withval}"; then
+ AC_DEFINE_UNQUOTED(ACE_TLI_TCP_DEVICE, "${withval}")
+ else
+ AC_MSG_ERROR(TLI/TCP device ${withval} does not exist.)
+ fi
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(reentrant,
+ [ --enable-reentrant enable reentrant functions [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_reentrant_funcs=yes
+ ;;
+ no)
+ ace_user_enable_reentrant_funcs=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-reentrant)
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_reentrant_funcs=yes
+ ])
+
+
+])
+
+
+dnl Macros that add ACE compilation options to a `configure' script.
+dnl ACE_COMPILATION_OPTIONS
+AC_DEFUN(ACE_COMPILATION_OPTIONS, dnl
+[
+ AC_ARG_ENABLE(debug,
+ [ --enable-debug enable debugging [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS $DCXXFLAGS"
+ ;;
+ no)
+ AC_DEFINE(ACE_NDEBUG)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-debug)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(exceptions,
+ [ --enable-exceptions enable C++ exception handling [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_exceptions=yes
+ ;;
+ no)
+ ace_user_enable_exceptions=no
+ if test -n "$GXX"; then
+dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
+changequote(, )dnl
+ if g++ --version | egrep -v '^2\.[0-7]' > /dev/null; then
+changequote([, ])dnl
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fno-exceptions"
+ fi
+ fi
+ if test -n "$GCC"; then
+dnl Temporarily change M4 quotes to prevent "regex []" from being eaten
+changequote(, )dnl
+ if gcc --version | egrep -v '^2\.[0-7]' > /dev/null; then
+changequote([, ])dnl
+ ACE_CFLAGS="$ACE_CFLAGS -fno-exceptions"
+ fi
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-exceptions)
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_exceptions=no
+ ])
+
+
+ AC_ARG_ENABLE(fast,
+ [ --enable-fast enable -fast flag, e.g. Sun C++ [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -fast"
+ ACE_CFLAGS="$ACE_CFLAGS -fast"
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-fast)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(inline,
+ [ --enable-inline enable code inlining [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_DEFINE(__ACE_INLINE__)
+ ;;
+ no)
+ AC_DEFINE(ACE_NO_INLINE)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-inline)
+ ;;
+ esac
+ ],
+ [
+ AC_DEFINE(__ACE_INLINE__)
+ ])
+
+ AC_ARG_ENABLE(optimize,
+ [ --enable-optimize enable additional optimizations [default=yes]],
+ [
+ case "${enableval}" in
+ yes)
+ ace_user_enable_optimize=yes
+ ;;
+ no)
+ AC_MSG_WARN(Optimization configure support not fully implemented yet.)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-optimize)
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_optimize=yes
+ ])
+
+
+ AC_ARG_ENABLE(profile,
+ [ --enable-profile enable profiling [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ if test -z "$PROF"; then
+ AC_MSG_WARN(No profiling program found. Assuming 'prof' exists)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ else
+ case "$PROF" in
+ gprof)
+ echo "Building with 'gprof' support"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -pg"
+ ACE_CFLAGS="$ACE_CFLAGS -pg"
+ ;;
+ prof)
+ echo "Building with 'prof' support"
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ ;;
+ *)
+ dnl We shouldn't get here.
+ AC_MSG_WARN(Assuming 'prof' exists)
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -p"
+ ACE_CFLAGS="$ACE_CFLAGS -p"
+ ;;
+ esac
+ fi
+ ;;
+ no)
+ dnl Do nothing
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-profile)
+ ;;
+ esac
+ ],)
+
+ AC_ARG_ENABLE(purify,
+ [ --enable-purify Purify all executables [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_CHECK_PROG(PURIFY, purify, purify,)
+ if test -n "$PURIFY"; then
+ PURE_CACHE_BASE_DIR=/tmp/purifycache
+ PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
+ PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
+ PURELINK="$PURIFY -best-effort -chain-length=20 -cache-dir=$PURE_CACHE_DIR -fds-inuse-at-exit=no -inuse-at-exit -max_threads=100"
+ dnl Pick up Quantify directory from the users PATH.
+ ACE_PURIFY_DIR=`type purify | sed -e 's/.* is //' -e 's%/purify'`
+ ACE_CPPFLAGS="-DACE_HAS_PURIFY -I$ACE_PURIFY_DIR"
+ else
+ AC_MSG_WARN(Purify program was not found.)
+ AC_MSG_WARN(Disabling purify support.)
+ fi
+ ;;
+ no)
+ PURELINK=""
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-purify)
+ ;;
+ esac
+ ], PURELINK="")
+
+ AC_ARG_ENABLE(quantify,
+ [ --enable-quantify Quantify all executables [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ AC_CHECK_PROG(QUANTIFY, quantify, quantify,)
+ if test -n "$QUANTIFY"; then
+ PURE_CACHE_BASE_DIR=/tmp/purifycache
+ PURE_CACHE_DIR="${PURE_CACHE_BASE_DIR}-${LOGNAME}"
+ PURE_CACHE_DIR="${PURE_CACHE_DIR}-"`basename $CXX`
+
+ PRELINK="$QUANTIFY -best-effort -max_threads=100 -cache-dir=$PURE_CACHE_DIR"
+ dnl Pick up Quantify directory from the users PATH.
+ ACE_QUANTIFY_DIR=`type quantify | sed -e 's/.* is //' -e 's%/quantify$$%%'`
+ ACE_CPPFLAGS="-DACE_HAS_QUANTIFY -I$ACE_QUANTIFY_DIR"
+ else
+ AC_MSG_WARN(Quantify program was not found.)
+ AC_MSG_WARN(Disabling quantify support.)
+ fi
+ ;;
+ no)
+ PRELINK=""
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-quantify)
+ ;;
+ esac
+ ], PRELINK="")
+
+ AC_ARG_ENABLE(repo,
+ [ --enable-repo use GNU template repository
+ GNU C++ with repo patches and
+ EGCS only [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ if test -n "$GXX"; then
+ ace_user_enable_repo=yes
+ ACE_CXXFLAGS="$ACE_CXXFLAGS -frepo"
+ AC_DEFINE(ACE_HAS_GNU_REPO)
+ else
+ ace_user_enable_repo=no
+ AC_MSG_WARN(Not using GNU C++! GNU template respository disabled)
+ fi
+ ;;
+ no)
+ ace_user_enable_repo=no
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-repo)
+ ;;
+ esac
+ ],
+ [
+ ace_user_enable_repo=no
+ ])
+
+ AC_ARG_ENABLE(rtti,
+ [ --enable-rtti enable run-time type
+ identification
+ *Currently only for Sun C++ [default=no]],
+ [
+ case "${enableval}" in
+ yes)
+ if test -z "$GXX"; then
+ case "$target" in
+ *solaris*)
+ ace_user_enable_rtti=yes
+ ;;
+ *)
+ ;;
+ esac
+ else
+ AC_MSG_WARN(Not using Sun C++. RTTI will not be enabled.)
+ fi
+ ;;
+ no)
+ ;;
+ *)
+ AC_MSG_ERROR(bad value ${enableval} for --enable-rtti)
+ ;;
+ esac
+ ],)
+
+])