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
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4749 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
a7c186acec
commit
7df787b72d
|
@ -4,5 +4,6 @@ m4_include([build/config/ax_cc_maxopt.m4])
|
|||
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])
|
||||
|
|
|
@ -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@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])
|
||||
])
|
|
@ -291,11 +291,16 @@ AC_SUBST(LIBCURL_DEPS)
|
|||
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])
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
# define these targets in your makefile if you wish
|
||||
# local_all local_depend local_clean depend_install local_install local_distclean local_extraclean:
|
||||
|
||||
# and define these variables to impact your build
|
||||
|
||||
LOCAL_CFLAGS=
|
||||
LOCAL_LDFLAGS=
|
||||
LOCAL_OBJS=cdrcontainer.o basecdr.o baseregistry.o pddcdr.o csvcdr.o xmlcdr.o sqlitecdr.o
|
||||
|
||||
#LOCAL_CFLAGS += -DSWITCH_QUEUE_ENHANCED
|
||||
#LOCAL_LDFLAGS += -lcurl
|
||||
|
||||
LOCAL_INSERT_CFLAGS=mysql_config="\`which mysql-config 2>/dev/null \`"; if test -n "$$mysql_config"; then echo "\`mysql_config --include\`" ; fi
|
||||
LOCAL_INSERT_LDFLAGS=mysql_config="\`which mysql-config 2>/dev/null \`"; if test -n "$$mysql_config"; then echo "\`mysql_config --libs\`" ; fi
|
||||
LOCAL_INSERT_OBJS=mysql_config="\`which mysql-config 2>/dev/null \`"; if test -n "$$mysql_config"; then echo "mysqlcdr.o" ; fi
|
||||
|
||||
include ../../../../build/modmake.rules
|
|
@ -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
|
Loading…
Reference in New Issue