dnl dnl omniORB specific tests dnl AC_DEFUN([OMNI_OMNIORB_ROOT], [AC_CACHE_CHECK(for omniORB root, omni_cv_omniorb_root, [AC_ARG_WITH(omniorb, AC_HELP_STRING([--with-omniorb], [omniORB root directory]), omni_cv_omniorb_root=$withval, if test "x$prefix" != "xNONE"; then omni_cv_omniorb_root=$prefix else omni_cv_omniorb_root=$ac_default_prefix fi if test -x $omni_cv_omniorb_root/bin/omniidl; then : else omni_cv_omniorb_root=no fi) ]) if test "$omni_cv_omniorb_root" = "yes"; then AC_MSG_ERROR(You must specify the omniORB root directory.) fi if test "$omni_cv_omniorb_root" = "no"; then AC_MSG_ERROR(You must specify the omniORB root directory.) fi AC_SUBST(OMNIORB_ROOT, $omni_cv_omniorb_root) ]) AC_DEFUN([OMNI_OPENSSL_ROOT], [AC_CACHE_CHECK(for OpenSSL root, omni_cv_openssl_root, [AC_ARG_WITH(openssl, AC_HELP_STRING([--with-openssl], [OpenSSL root directory (default none)]), omni_cv_openssl_root=$withval, if test "x$prefix" != "xNONE"; then omni_cv_openssl_root=$prefix/openssl else omni_cv_openssl_root=$ac_default_prefix/openssl fi if test -d $omni_cv_openssl_root/lib; then : else omni_cv_openssl_root=no fi) ]) if test "$omni_cv_openssl_root" = "yes"; then if test "x$prefix" != "xNONE"; then omni_cv_openssl_root=$prefix/openssl else omni_cv_openssl_root=$ac_default_prefix/openssl fi if test -d $omni_cv_openssl_root; then : else AC_MSG_ERROR(Can't find OpenSSL in '$omni_cv_openssl_root'. Please give me the full path or leave out --with-openssl.) omni_cv_openssl_root=no fi fi open_ssl_root=$omni_cv_openssl_root if test "$open_ssl_root" = "no"; then open_ssl_root="" fi AC_SUBST(OPEN_SSL_ROOT, $open_ssl_root) ]) AC_DEFUN([OMNI_CXX_CATCH_BY_BASE], [AC_CACHE_CHECK(whether exceptions can be caught by base class, omni_cv_cxx_catch_by_base, [AC_REQUIRE([AC_CXX_EXCEPTIONS]) AC_LANG_PUSH(C++) AC_TRY_RUN([ class A { public: A() {} }; class B : public virtual A { public: B() {} }; int main() { try { throw B(); } catch (A&) { return 0; } catch (...) { return 1; } return 2; } ], omni_cv_cxx_catch_by_base=yes, omni_cv_cxx_catch_by_base=no, omni_cv_cxx_catch_by_base=no) AC_LANG_POP(C++) ]) if test "$omni_cv_cxx_catch_by_base" = yes; then AC_DEFINE(HAVE_CATCH_BY_BASE,, [define if the compiler can catch exceptions by base class]) fi ]) AC_DEFUN([OMNI_CXX_NEED_FQ_BASE_CTOR], [AC_CACHE_CHECK(whether base constructors have to be fully-qualified, omni_cv_cxx_need_fq_base_ctor, [AC_LANG_PUSH(C++) AC_TRY_COMPILE([ class A { public: class B { public: B(int i) {} }; }; class C : public A::B { public: C() : B(5) {} }; ], [C c;], omni_cv_cxx_need_fq_base_ctor=no, omni_cv_cxx_need_fq_base_ctor=yes) AC_LANG_POP(C++) ]) if test "$omni_cv_cxx_need_fq_base_ctor" = yes; then AC_DEFINE(OMNI_REQUIRES_FQ_BASE_CTOR,, [define if base constructors have to be fully qualified]) fi ]) AC_DEFUN([OMNI_CXX_LONG_IS_INT], [AC_CACHE_CHECK(whether long is the same type as int, omni_cv_cxx_long_is_int, [AC_LANG_PUSH(C++) AC_TRY_COMPILE([ int f(int x){return 1;} int f(long x){return 1;} ],[long l = 5; return f(l);], omni_cv_cxx_long_is_int=no, omni_cv_cxx_long_is_int=yes) AC_LANG_POP(C++) ]) if test "$omni_cv_cxx_long_is_int" = yes; then AC_DEFINE(OMNI_LONG_IS_INT,,[define if long is the same type as int]) fi ]) AC_DEFUN([OMNI_HAVE_SIG_IGN], [AC_CACHE_CHECK(whether SIG_IGN is available, omni_cv_sig_ign_available, [AC_LANG_PUSH(C++) AC_TRY_COMPILE([ #ifdef HAVE_SIGNAL_H #include #else die here #endif #ifndef HAVE_SIGACTION extern "C" int sigaction(int, const struct sigaction *, struct sigaction *); #endif ],[ struct sigaction act; sigemptyset(&act.sa_mask); act.sa_handler = SIG_IGN; ], omni_cv_sig_ign_available=yes, omni_cv_sig_ign_available=no) AC_LANG_POP(C++) ]) if test "$omni_cv_sig_ign_available" = yes; then AC_DEFINE(HAVE_SIG_IGN,,[define if SIG_IGN is available]) fi ]) AC_DEFUN([OMNI_GETTIMEOFDAY_TIMEZONE], [AC_CACHE_CHECK(whether gettimeofday() takes a timezone argument, omni_cv_gettimeofday_timezone, [AC_LANG_PUSH(C++) AC_TRY_COMPILE([ #ifdef HAVE_GETTIMEOFDAY #include #else die here #endif ],[ struct timeval v; gettimeofday(&v, 0); ], omni_cv_gettimeofday_timezone=yes, omni_cv_gettimeofday_timezone=no) AC_LANG_POP(C++) ]) if test "$omni_cv_gettimeofday_timezone" = yes; then AC_DEFINE(GETTIMEOFDAY_TIMEZONE,, [define if gettimeofday() takes a timezone argument]) fi ]) AC_DEFUN([OMNI_HAVE_ISNANORINF], [AC_CACHE_CHECK(for IsNANorINF, omni_cv_have_isnanorinf, [AC_LANG_PUSH(C++) AC_TRY_COMPILE([ #include #include ],[ double d = 1.23; int i = IsNANorINF(d); ], omni_cv_have_isnanorinf=yes, omni_cv_have_isnanorinf=no) AC_LANG_POP(C++) ]) if test "$omni_cv_have_isnanorinf" = yes; then AC_DEFINE(HAVE_ISNANORINF,, [Define if you have the `IsNANorINF' function]) fi ]) AC_DEFUN([OMNI_SOCKNAME_ARG], [AC_MSG_CHECKING([third argument of getsockname]) omni_cv_sockname_size_t=no AC_LANG_PUSH(C++) AC_TRY_COMPILE([ #include #include #include #include #include ],[ socklen_t l; getsockname(0, 0, &l); ], omni_cv_sockname_size_t=socklen_t) if test "$omni_cv_sockname_size_t" = no; then AC_TRY_COMPILE([ #include #include #include #include #include ],[ size_t l; getsockname(0, 0, &l); ], omni_cv_sockname_size_t=size_t, omni_cv_sockname_size_t=int) fi AC_DEFINE_UNQUOTED(OMNI_SOCKNAME_SIZE_T, $omni_cv_sockname_size_t, [Define to the type of getsockname's third argument]) AC_MSG_RESULT([$omni_cv_sockname_size_t]) ]) AC_DEFUN([OMNI_CONFIG_FILE], [AC_CACHE_CHECK(omniORB config file location, omni_cv_omniorb_config, [AC_ARG_WITH(omniORB-config, AC_HELP_STRING([--with-omniORB-config], [location of omniORB config file (default /etc/omniORB.cfg)]), omni_cv_omniorb_config=$withval, omni_cv_omniorb_config="/etc/omniORB.cfg") ]) if test "$omni_cv_omniorb_config" = "no" || test "$omni_cv_omniorb_config" = "yes"; then echo "*** invalid omniORB config file '$omni_cv_omniorb_config'; using '/etc/omniORB.cfg'" omni_cv_omniorb_config="/etc/omniORB.cfg" fi AC_SUBST(OMNIORB_CONFIG, $omni_cv_omniorb_config) ]) AC_DEFUN([OMNI_OMNINAMES_LOGDIR], [AC_CACHE_CHECK(omniNames log directory, omni_cv_omninames_logdir, [AC_ARG_WITH(omniNames-logdir, AC_HELP_STRING([--with-omniNames-logdir], [location of omniNames log directory (default /var/omninames)]), omni_cv_omninames_logdir=$withval, omni_cv_omninames_logdir="/var/omninames") ]) if test "$omni_cv_omninames_logdir" = "no" || test "$omni_cv_omninames_logdir" = "yes"; then echo "*** invalid omniNames log directory '$omni_cv_omninames_logdir'; using '/var/omninames'" omni_cv_omninames_logdir="/var/omninames" fi AC_SUBST(OMNINAMES_LOGDIR, $omni_cv_omninames_logdir) ]) AC_DEFUN([OMNI_DISABLE_STATIC], [AC_CACHE_CHECK(whether to build static libraries, omni_cv_enable_static, [AC_ARG_ENABLE(static, AC_HELP_STRING([--disable-static], [disable build of static libraries (default enable-static)]), omni_cv_enable_static=$enableval, omni_cv_enable_static=yes) ]) AC_SUBST(ENABLE_STATIC, $omni_cv_enable_static) ]) dnl dnl Tests from http://www.gnu.org/software/ac-archive/ dnl AC_DEFUN([AC_CXX_EXCEPTIONS], [AC_CACHE_CHECK(whether the compiler supports exceptions, ac_cv_cxx_exceptions, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE(,[try { throw 1; } catch (int i) { return i; }], ac_cv_cxx_exceptions=yes, ac_cv_cxx_exceptions=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_exceptions" = yes; then AC_DEFINE(HAVE_EXCEPTIONS,,[define if the compiler supports exceptions]) fi ]) AC_DEFUN([AC_CXX_BOOL], [AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type, ac_cv_cxx_bool, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ int f(int x){return 1;} int f(char x){return 1;} int f(bool x){return 1;} ],[bool b = true; return f(b);], ac_cv_cxx_bool=yes, ac_cv_cxx_bool=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_bool" = yes; then AC_DEFINE(HAVE_BOOL,,[define if bool is a built-in type]) fi ]) AC_DEFUN([AC_CXX_CONST_CAST], [AC_CACHE_CHECK(whether the compiler supports const_cast<>, ac_cv_cxx_const_cast, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE(,[int x = 0;const int& y = x;int& z = const_cast(y);return z;], ac_cv_cxx_const_cast=yes, ac_cv_cxx_const_cast=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_const_cast" = yes; then AC_DEFINE(HAVE_CONST_CAST,,[define if the compiler supports const_cast<>]) fi ]) AC_DEFUN([AC_CXX_DYNAMIC_CAST], [AC_CACHE_CHECK(whether the compiler supports dynamic_cast<>, ac_cv_cxx_dynamic_cast, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([#include class Base { public : Base () {} virtual void f () = 0;}; class Derived : public Base { public : Derived () {} virtual void f () {} };],[ Derived d; Base& b=d; return dynamic_cast(&b) ? 0 : 1;], ac_cv_cxx_dynamic_cast=yes, ac_cv_cxx_dynamic_cast=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_dynamic_cast" = yes; then AC_DEFINE(HAVE_DYNAMIC_CAST,,[define if the compiler supports dynamic_cast<>]) fi ]) AC_DEFUN([AC_CXX_NAMESPACES], [AC_CACHE_CHECK(whether the compiler implements namespaces, ac_cv_cxx_namespaces, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}], [using namespace Outer::Inner; return i;], ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_namespaces" = yes; then AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces]) fi ]) AC_DEFUN([AC_CXX_HAVE_STD], [AC_CACHE_CHECK(whether the compiler supports ISO C++ standard library, ac_cv_cxx_have_std, [AC_REQUIRE([AC_CXX_NAMESPACES]) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([#include #include #include #include #ifdef HAVE_NAMESPACES using namespace std; #endif],[return 0;], ac_cv_cxx_have_std=yes, ac_cv_cxx_have_std=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_have_std" = yes; then AC_DEFINE(HAVE_STD,,[define if the compiler supports ISO C++ standard library]) fi ]) AC_DEFUN([AC_CXX_MEMBER_CONSTANTS], [AC_CACHE_CHECK(whether the compiler supports member constants, ac_cv_cxx_member_constants, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([class C {public: static const int i = 0;}; const int C::i;], [return C::i;], ac_cv_cxx_member_constants=yes, ac_cv_cxx_member_constants=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_member_constants" = yes; then AC_DEFINE(HAVE_MEMBER_CONSTANTS,,[define if the compiler supports member constants]) fi ])