From 51b082375fa826070cbdd0f6329fa25f71884464 Mon Sep 17 00:00:00 2001 From: oana Date: Tue, 30 Mar 2010 11:49:43 +0000 Subject: [PATCH] Yate has been ported on Mac OS X. git-svn-id: http://yate.null.ro/svn/yate/trunk@3153 acf43c95-373e-0410-b603-e72c3f656dc1 --- configure.in | 23 ++++++++++++++++++++--- engine/Makefile.in | 5 +++-- engine/Mutex.cpp | 2 +- libs/yjabber/Makefile.in | 3 ++- libs/ymgcp/Makefile.in | 3 ++- libs/ysig/Makefile.in | 3 ++- modules/Makefile.in | 3 +++ yateclass.h | 9 ++------- 8 files changed, 35 insertions(+), 16 deletions(-) diff --git a/configure.in b/configure.in index 48b6564a..72ed9ab3 100644 --- a/configure.in +++ b/configure.in @@ -317,10 +317,19 @@ AC_LANG_SAVE AC_LANG_C SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wall -Werror $GCC_UNRESOLVED_SYMBOLS" +SAVE_LIBS="$LIBS" AC_TRY_LINK([#include #include -#include ],[res_init();],[HAVE_RESOLV=yes],[HAVE_RESOLV=no]) -if [[ "x$HAVE_RESOLV" != "xno" ]]; then +#include ],[res_init();],[HAVE_RESOLV=yes]) +if [[ "x$HAVE_RESOLV" = "xno" ]]; then +LIBS="$LIBS -lresolv" +AC_TRY_LINK([#include +#include +#include ],[res_init();], +[HAVE_RESOLV=yes RESOLV_LIB=-lresolv]) +fi +LIBS="$SAVE_LIBS" +if [[ "x$HAVE_RESOLV" != "xno" -a "x$RESOLV_LIB" = "x" ]]; then AC_TRY_LINK([#include #include #include ],[unsigned char x[2]; res_query("",0,0,x,0);],[],[RESOLV_LIB=-lresolv]) @@ -1066,20 +1075,28 @@ CFLAGS=`echo "$CFLAGS" | sed 's/\(^\| *\)-g[[0-9]]*//' | sed 's/[[[:space:]]]\{2 MODULE_CFLAGS="-fno-exceptions -fPIC $HAVE_GCC_FORMAT_CHECK" MODULE_CPPFLAGS="-fno-check-new $RTTI_OPT $MODULE_CFLAGS" MODULE_LDRELAX="-export-dynamic -shared" +MODULE_SYMBOLS="-Wl,--retain-symbols-file,/dev/null" +SONAME_OPT="-shared -Wl,-soname=" case "x$uname_os" in x*BSD) INSTALL_D="install" MODULE_LDRELAX="$MODULE_LDRELAX -lc" ;; + xDarwin) + INSTALL_D="install" + MODULE_LDRELAX="-dynamiclib" + MODULE_SYMBOLS="" + SONAME_OPT="-dynamiclib -Wl,-dylib_install_name," + ;; esac MODULE_LDFLAGS="$MODULE_LDRELAX $GCC_UNRESOLVED_SYMBOLS" -MODULE_SYMBOLS="-Wl,--retain-symbols-file,/dev/null" AC_SUBST(INSTALL_D) AC_SUBST(MODULE_CFLAGS) AC_SUBST(MODULE_CPPFLAGS) AC_SUBST(MODULE_LDRELAX) AC_SUBST(MODULE_LDFLAGS) AC_SUBST(MODULE_SYMBOLS) +AC_SUBST(SONAME_OPT) DOXYGEN_BIN="" diff --git a/engine/Makefile.in b/engine/Makefile.in index 683a09c0..8831ccb8 100644 --- a/engine/Makefile.in +++ b/engine/Makefile.in @@ -14,6 +14,7 @@ INCLUDES := -I.. -I@top_srcdir@ CFLAGS := @CFLAGS@ @MODULE_CFLAGS@ @INLINE_FLAGS@ CPPFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ LDFLAGS:= @LDFLAGS@ +SONAME_OPT := @SONAME_OPT@ LDCONFIG:=true MKDEPS := ../config.status @@ -38,7 +39,7 @@ COMPILE = $(CXX) $(DEFS) $(DEBUG) $(INCLUDES) $(CPPFLAGS) LINK = $(CXX) $(LDFLAGS) ifeq (@INTERNAL_REGEX@,yes) -REGEX_INC:= -I@top_srcdir@/engine/regex +REGEX_INC:= -I@top_srcdir@/engine/regex -UDEBUG LIBOBJS := $(LIBOBJS) regex.o else REGEX_INC:= @@ -115,4 +116,4 @@ Makefile: @srcdir@/Makefile.in $(MKDEPS) cd .. && ./config.status ../$(YLIB): $(LIBOBJS) $(LIBS) - $(LINK) -shared -o $@ -Wl,--soname=$(YLIB) $^ $(LIBTHR) $(LIBAUX) + $(LINK) -o $@ $(SONAME_OPT)$(YLIB) $^ $(LIBTHR) $(LIBAUX) diff --git a/engine/Mutex.cpp b/engine/Mutex.cpp index 56329a96..6ca72b65 100644 --- a/engine/Mutex.cpp +++ b/engine/Mutex.cpp @@ -35,7 +35,7 @@ typedef HANDLE HSEMAPHORE; #ifdef MUTEX_HACK extern "C" { -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__APPLE__) extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind); #define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE #else diff --git a/libs/yjabber/Makefile.in b/libs/yjabber/Makefile.in index 7baae69a..b15af117 100644 --- a/libs/yjabber/Makefile.in +++ b/libs/yjabber/Makefile.in @@ -9,6 +9,7 @@ DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@/../yxml -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ LDFLAGS:= @LDFLAGS@ +SONAME_OPT := @SONAME_OPT@ YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/../yxml/yatexml.h @srcdir@/xmpputils.h @srcdir@/yatejabber.h @srcdir@/yatejingle.h @@ -58,7 +59,7 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) $(YXML) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) @RESOLV_LIB@ + $(LINK) -o $@ $(SONAME_OPT)$(LIBD_VER) $^ $(YATELIBS) @RESOLV_LIB@ ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) diff --git a/libs/ymgcp/Makefile.in b/libs/ymgcp/Makefile.in index 6dd77d2d..7fe54dfb 100644 --- a/libs/ymgcp/Makefile.in +++ b/libs/ymgcp/Makefile.in @@ -9,6 +9,7 @@ DEFS := INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ LDFLAGS:= @LDFLAGS@ +SONAME_OPT := @SONAME_OPT@ YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatemgcp.h @@ -57,7 +58,7 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) + $(LINK) -o $@ $(SONAME_OPT)$(LIBD_VER) $^ $(YATELIBS) ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) diff --git a/libs/ysig/Makefile.in b/libs/ysig/Makefile.in index 9627a228..2b87c03b 100644 --- a/libs/ysig/Makefile.in +++ b/libs/ysig/Makefile.in @@ -10,6 +10,7 @@ LIBTHR := @THREAD_LIB@ INCLUDES := -I@top_srcdir@ -I../.. -I@srcdir@ CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@ LDFLAGS:= @LDFLAGS@ +SONAME_OPT := @SONAME_OPT@ YATELIBS := -L../.. -lyate @LIBS@ INCFILES := @top_srcdir@/yateclass.h @srcdir@/yatesig.h @@ -65,7 +66,7 @@ Makefile: @srcdir@/Makefile.in ../../config.status cd ../.. && ./config.status ../../$(LIBD_VER): $(OBJS) - $(LINK) -shared -o $@ -Wl,--soname=$(LIBD_VER) $^ $(YATELIBS) + $(LINK) -o $@ $(SONAME_OPT)$(LIBD_VER) $^ $(YATELIBS) ../../$(LIBD_DEV): ../../$(LIBD_VER) cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV) diff --git a/modules/Makefile.in b/modules/Makefile.in index 7d11b9b7..da92600a 100644 --- a/modules/Makefile.in +++ b/modules/Makefile.in @@ -167,6 +167,9 @@ strip: all do-strip .PHONY: clean clean: do-clean @-$(RM) $(PROGS) $(LIBS) *.o qt4/*.moc core 2>/dev/null + @-for i in $(PROGS) ; do \ + $(RM) -rf $$i.dSYM 2>/dev/null; \ + done; .PHONY: install install: all do-install diff --git a/yateclass.h b/yateclass.h index 85e03209..6547c426 100644 --- a/yateclass.h +++ b/yateclass.h @@ -417,14 +417,9 @@ void NDebug(const char* facility, int level, const char* format, ...); void NDebug(const DebugEnabler* local, int level, const char* format, ...); #endif -#ifdef _DEBUG +#if defined(_DEBUG) || defined(DEBUG) || defined(XDEBUG) #undef DEBUG -#define DEBUG -#endif - -#ifdef XDEBUG -#undef DEBUG -#define DEBUG +#define DEBUG 1 #endif #ifdef DEBUG