diff options
Diffstat (limited to 'm4/ace.m4')
-rw-r--r-- | m4/ace.m4 | 594 |
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 + ],) + +]) |