[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