[Freeswitch-svn] [commit] r4749 - in freeswitch/trunk: . build/config src/mod/event_handlers/mod_cdr

Freeswitch SVN mikej at freeswitch.org
Fri Mar 23 02:08:17 EDT 2007


Author: mikej
Date: Fri Mar 23 02:08:17 2007
New Revision: 4749

Added:
   freeswitch/trunk/build/config/ax_lib_mysql.m4
   freeswitch/trunk/src/mod/event_handlers/mod_cdr/Makefile.am
Removed:
   freeswitch/trunk/src/mod/event_handlers/mod_cdr/Makefile
Modified:
   freeswitch/trunk/acinclude.m4
   freeswitch/trunk/configure.in

Log:
add proper autoconf checks for mysql client and convert mod_cdr to automake makefile so that we can use AM_CONDITIONALS for the mysqlcdr build selection

Modified: freeswitch/trunk/acinclude.m4
==============================================================================
--- freeswitch/trunk/acinclude.m4	(original)
+++ freeswitch/trunk/acinclude.m4	Fri Mar 23 02:08:17 2007
@@ -4,5 +4,6 @@
 m4_include([build/config/ax_check_compiler_flags.m4])
 m4_include([build/config/ac_gcc_archflag.m4])
 m4_include([build/config/ac_gcc_x86_cpuid.m4])
+m4_include([build/config/ax_lib_mysql.m4])
 m4_include([libs/apr/build/apr_common.m4])
 m4_include([libs/curl/docs/libcurl/libcurl.m4])

Added: freeswitch/trunk/build/config/ax_lib_mysql.m4
==============================================================================
--- (empty file)
+++ freeswitch/trunk/build/config/ax_lib_mysql.m4	Fri Mar 23 02:08:17 2007
@@ -0,0 +1,148 @@
+##### http://autoconf-archive.cryp.to/ax_lib_mysql.html
+#
+# SYNOPSIS
+#
+#   AX_LIB_MYSQL([MINIMUM-VERSION])
+#
+# DESCRIPTION
+#
+#   This macro provides tests of availability of MySQL client library
+#   of particular version or newer.
+#
+#   AX_LIB_MYSQL macro takes only one argument which is optional. If
+#   there is no required version passed, then macro does not run
+#   version test.
+#
+#   The --with-mysql option takes one of three possible values:
+#
+#   no - do not check for MySQL client library
+#
+#   yes - do check for MySQL library in standard locations
+#   (mysql_config should be in the PATH)
+#
+#   path - complete path to mysql_config utility, use this option if
+#   mysql_config can't be found in the PATH
+#
+#   This macro calls:
+#
+#     AC_SUBST(MYSQL_CFLAGS)
+#     AC_SUBST(MYSQL_LDFLAGS)
+#     AC_SUBST(MYSQL_VERSION)
+#
+#   And sets:
+#
+#     HAVE_MYSQL
+#
+# LAST MODIFICATION
+#
+#   2006-07-16
+#
+# COPYLEFT
+#
+#   Copyright (c) 2006 Mateusz Loskot <mateusz at loskot.net>
+#
+#   Copying and distribution of this file, with or without
+#   modification, are permitted in any medium without royalty provided
+#   the copyright notice and this notice are preserved.
+
+AC_DEFUN([AX_LIB_MYSQL],
+[
+    AC_ARG_WITH([mysql],
+        AC_HELP_STRING([--with-mysql=@<:@ARG@:>@],
+            [use MySQL client library @<:@default=yes@:>@, optionally specify path to mysql_config]
+        ),
+        [
+        if test "$withval" = "no"; then
+            want_mysql="no"
+        elif test "$withval" = "yes"; then
+            want_mysql="yes"
+        else
+            want_mysql="yes"
+            MYSQL_CONFIG="$withval"
+        fi
+        ],
+        [want_mysql="yes"]
+    )
+
+    MYSQL_CFLAGS=""
+    MYSQL_LDFLAGS=""
+    MYSQL_VERSION=""
+
+    dnl
+    dnl Check MySQL libraries (libpq)
+    dnl
+
+    if test "$want_mysql" = "yes"; then
+
+        if test -z "$MYSQL_CONFIG" -o test; then
+            AC_PATH_PROG([MYSQL_CONFIG], [mysql_config], [no])
+        fi
+
+        if test "$MYSQL_CONFIG" != "no"; then
+            AC_MSG_CHECKING([for MySQL libraries])
+
+            MYSQL_CFLAGS="`$MYSQL_CONFIG --cflags`"
+            MYSQL_LDFLAGS="`$MYSQL_CONFIG --libs`"
+
+            MYSQL_VERSION=`$MYSQL_CONFIG --version`
+
+            AC_DEFINE([HAVE_MYSQL], [1],
+                [Define to 1 if MySQL libraries are available])
+
+            found_mysql="yes"
+            AC_MSG_RESULT([yes])
+        else
+            found_mysql="no"
+            AC_MSG_RESULT([no])
+        fi
+    fi
+
+    dnl
+    dnl Check if required version of MySQL is available
+    dnl
+
+
+    mysql_version_req=ifelse([$1], [], [], [$1])
+
+    if test "$found_mysql" = "yes" -a -n "$mysql_version_req"; then
+
+        AC_MSG_CHECKING([if MySQL version is >= $mysql_version_req])
+
+        dnl Decompose required version string of MySQL
+        dnl and calculate its number representation
+        mysql_version_req_major=`expr $mysql_version_req : '\([[0-9]]*\)'`
+        mysql_version_req_minor=`expr $mysql_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
+        mysql_version_req_micro=`expr $mysql_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+        if test "x$mysql_version_req_micro" = "x"; then
+            mysql_version_req_micro="0"
+        fi
+
+        mysql_version_req_number=`expr $mysql_version_req_major \* 1000000 \
+                                   \+ $mysql_version_req_minor \* 1000 \
+                                   \+ $mysql_version_req_micro`
+
+        dnl Decompose version string of installed MySQL
+        dnl and calculate its number representation
+        mysql_version_major=`expr $MYSQL_VERSION : '\([[0-9]]*\)'`
+        mysql_version_minor=`expr $MYSQL_VERSION : '[[0-9]]*\.\([[0-9]]*\)'`
+        mysql_version_micro=`expr $MYSQL_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+        if test "x$mysql_version_micro" = "x"; then
+            mysql_version_micro="0"
+        fi
+
+        mysql_version_number=`expr $mysql_version_major \* 1000000 \
+                                   \+ $mysql_version_minor \* 1000 \
+                                   \+ $mysql_version_micro`
+
+        mysql_version_check=`expr $mysql_version_number \>\= $mysql_version_req_number`
+        if test "$mysql_version_check" = "1"; then
+            AC_MSG_RESULT([yes])
+        else
+            AC_MSG_RESULT([no])
+        fi
+    fi
+
+    AC_SUBST([MYSQL_VERSION])
+    AC_SUBST([MYSQL_CFLAGS])
+    AC_SUBST([MYSQL_LDFLAGS])
+])

Modified: freeswitch/trunk/configure.in
==============================================================================
--- freeswitch/trunk/configure.in	(original)
+++ freeswitch/trunk/configure.in	Fri Mar 23 02:08:17 2007
@@ -291,11 +291,16 @@
 AC_ARG_ENABLE(crash-protection,     
 	[  --enable-crash-protection         Compile with CRASH Protection],,[enable_crash_prot="no"])
 
+#AX_LIB_MYSQL([MINIMUM-VERSION]) 
+AX_LIB_MYSQL
+
 AM_CONDITIONAL([CRASHPROT],[test "x$enable_crash_prot" != "xno"])
+AM_CONDITIONAL([HAVE_MYSQL],[test "$have_mysql" = "yes"])
 
 AC_CONFIG_FILES([Makefile
                 src/Makefile
                 src/mod/Makefile
+                src/mod/event_handlers/mod_cdr/Makefile
                 src/include/switch_am_config.h
                 build/getlib.sh
                 build/modmake.rules])

Added: freeswitch/trunk/src/mod/event_handlers/mod_cdr/Makefile.am
==============================================================================
--- (empty file)
+++ freeswitch/trunk/src/mod/event_handlers/mod_cdr/Makefile.am	Fri Mar 23 02:08:17 2007
@@ -0,0 +1,49 @@
+#we should set all these vars from configure, no reason to have these in each Makefile.am
+LIBTOOL=`if test -z "$(VERBOSE)" ; then echo $(SHELL) $(switch_builddir)/quiet_libtool ;else echo $(switch_builddir)/libtool;  fi;`
+AM_MAKEFLAGS=`test -n "$(VERBOSE)" || echo -s`
+LINK_OUTPUT_REDIR=> $(MODNAME).log || error="yes" ; \
+			if test -n "$(VERBOSE)" -o "$$error" = "yes"; then \
+			  cat $(MODNAME).log ; \
+			fi ;\
+			if test "$$error" = "yes"; then \
+			  exit 1 ;\
+			fi
+
+moddir=$(prefix)/mod
+
+
+
+MODNAME=mod_cdr
+mod_LTLIBRARIES = mod_cdr.la
+mod_cdr_la_SOURCES = mod_cdr.cpp cdrcontainer.cpp basecdr.cpp baseregistry.cpp pddcdr.cpp csvcdr.cpp xmlcdr.cpp sqlitecdr.cpp
+mod_cdr_la_CFLAGS = $(AM_CFLAGS)
+mod_cdr_la_LIBADD=$(switch_builddir)/libfreeswitch.la
+mod_cdr_la_LDFLAGS=-module -avoid-version -no-undefined -export-symbols-regex ^switch_module_.*$ -rpath $(PREFIX)/$(libdir)
+
+#Build mysqlcdr if we have mysql client
+if HAVE_MYSQL
+mod_cdr_la_CFLAGS += -DMYSQL
+mod_cdr_la_LDFLAGS += -lmysql-client
+mod_cdr_la_SOURCES += mysqlcdr.cpp
+endif
+
+#mod_cdr_la_CFLAGS  += -DSWITCH_QUEUE_ENHANCED
+#mod_cdr_la_LDFLAGS += -lcurl
+
+#Override link target so we can control the output
+
+$(MODNAME).la: $(mod_cdr_la_OBJECTS) $(mod_cdr_la_DEPENDENCIES)
+	@echo Creating $(MODNAME).$(DYNAMIC_LIB_EXTEN)...
+	@$(CXXLINK) -rpath $(moddir) $(mod_cdr_la_LDFLAGS) $(mod_cdr_la_OBJECTS) $(mod_cdr_la_LIBADD) $(LIBS) $(LINK_OUTPUT_REDIR)
+
+#Override the linstall target so we just install the .so/.dylib
+
+install-data-am: $(DESTDIR)$(PREFIX)/$(moddir)/$(MODNAME).$(DYNAMIC_LIB_EXTEN)
+
+$(DESTDIR)$(PREFIX)/$(moddir)/$(MODNAME).$(DYNAMIC_LIB_EXTEN): $(MODNAME).la
+	@echo installing $(MODNAME).$(DYNAMIC_LIB_EXTEN)
+	@if [ -f .libs/$(MODNAME).$(DYNAMIC_LIB_EXTEN) ] ; then \
+	  $(LIBTOOL) --mode=install $(INSTALL) .libs/$(MODNAME).$(DYNAMIC_LIB_EXTEN) $(DESTDIR)$(PREFIX)/$(moddir) >/dev/null  ; \
+	else \
+	  $(LIBTOOL) --mode=install $(INSTALL) $(MODNAME).$(DYNAMIC_LIB_EXTEN) $(DESTDIR)$(PREFIX)/$(moddir) >/dev/null  ; \
+	fi



More information about the Freeswitch-svn mailing list