Commit 23b04e09 authored by Tristan Matthews's avatar Tristan Matthews

Merge branches 'master' and 'release' into release

parents f4a2361e 83286ef0
......@@ -6,7 +6,6 @@
*.Po
*.Plo
*.loT
*.m4
*.Tpo
Makefile.in
Makefile
......@@ -70,5 +69,9 @@ config_auto.h
# Ignore temp files
*~
# Cscope/Ctags files
cscope.*
tags
# IDE stuffs
nbproject
......@@ -2,6 +2,8 @@
# SFLphone
################################################
* 2012-05-17: 1.1.0 has been released
* 2011-11-18: 1.0.1 has been released
* 2011-09-30: 1.0.0 has been released
......
aclocal.m4
src/dbus/org.sflphone.SFLphone.service
src/sflphoned
......
......@@ -21,8 +21,7 @@ endif
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = libs src ringtones man $(TESTS_DIR) doc
EXTRA_DIST = README.gentoo \
m4/libtool.m4 \
EXTRA_DIST = m4/libtool.m4 \
m4/lt~obsolete.m4 \
m4/ltoptions.m4 \
m4/ltsugar.m4 \
......
......@@ -51,8 +51,6 @@ Short description of content of source tree
-------------------------------------------
- ringtones/ contains the different ringtones.
- stund/ is an implementation of the protocol STUN used when there is a NAT.
- utilspp/ allows to implement a singleton.
- src/ is the core of SFLphone. It contains the main.cpp, managerimpl.cpp
files, audio and gui directories, and files about signalisation SIP. Later,
it should be better, when IAX will be implemented, that a directory groups
......
emerge commoncpp2
# editer /usr/lib/pkgconfig/libccext2.pc pour le includedir -> /usr/include/
ACCEPT_KEYWORDS=~x86 emerge ccrtp
emerge libosip
ACCEPT_KEYWORDS=~x86 emerge libeXosip
emerge libsamplerate
emerge cvs
emerge =qt-3.3.6-r1
cvs ...
cd tools/
portaudio.sh
cd portaudio
make install
cd ../../
./tools/autotoolize.sh
./configure --with-qtdir=/usr/qt/3 PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
make
make install
sflphone
#!/bin/sh -e
#!/bin/bash
# Workaround for http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=565663
mkdir -p m4
......@@ -7,11 +7,14 @@ HOOKS_DIR="../.git/hooks"
# install pre-commit hook for doing clean commits
if [ -d "$HOOKS_DIR" ];
then
if test ! \( -x ${HOOKS_DIR}/pre-commit -a -L ${HOOKS_DIR}/pre-commit \);
pushd ${HOOKS_DIR}
if test ! \( -x pre-commit -a -L pre-commit \);
then
rm -f ${HOOKS_DIR}/pre-commit
ln -s ${HOOKS_DIR}/pre-commit.sample ${HOOKS_DIR}/pre-commit
echo "Creating symbolic link for pre-commit hook..."
rm -f pre-commit
ln -s pre-commit.sample pre-commit
fi
popd
fi
autoreconf --force --install --verbose -Wall -I m4
......@@ -2,14 +2,10 @@ dnl SFLPhone - configure.ac for automake 1.9 and autoconf 2.59
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ([2.65])
AC_INIT([sflphone],[1.0.2],[sflphoneteam@savoirfairelinux.com],[sflphone])
AC_INIT([sflphone],[1.1.0],[sflphoneteam@savoirfairelinux.com],[sflphone])
AC_COPYRIGHT([[Copyright (c) Savoir-Faire Linux 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012]])
AC_REVISION([$Revision$])
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_CONFIG_HEADERS([config.h])
......@@ -22,28 +18,6 @@ AC_PROG_MAKE_SET
dnl Where to find configure files
AC_CONFIG_MACRO_DIR([m4])
dnl What to generate
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([libs/Makefile \
libs/utilspp/Makefile \
libs/utilspp/singleton/Makefile \
libs/iax2/Makefile])
AC_CONFIG_FILES([src/Makefile \
src/sip/Makefile \
src/im/Makefile \
src/iax/Makefile \
src/audio/Makefile \
src/audio/audiortp/Makefile \
src/audio/pulseaudio/Makefile \
src/audio/alsa/Makefile \
src/audio/sound/Makefile \
src/audio/codecs/Makefile \
src/config/Makefile \
src/dbus/Makefile \
src/hooks/Makefile \
src/history/Makefile])
dnl Unit tests section
AC_CONFIG_FILES([test/Makefile])
......@@ -72,7 +46,8 @@ AC_FUNC_ALLOCA
AC_HEADER_STDC
AC_CHECK_HEADERS([arpa/inet.h fcntl.h libintl.h limits.h malloc.h memory.h \
netdb.h netinet/in.h stdlib.h string.h strings.h \
sys/ioctl.h sys/socket.h sys/time.h unistd.h utime.h ostream])
sys/ioctl.h sys/socket.h sys/time.h unistd.h utime.h \
ostream getopt.h])
dnl Check for typedefs, structures, and compiler characteristics
AC_HEADER_STAT
......@@ -96,24 +71,21 @@ AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_REALLOC
AC_FUNC_SELECT_ARGTYPES
AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
AC_DIAGNOSE([obsolete],[your code may safely assume C89 semantics that RETSIGTYPE is void.
Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl
AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM([#include <sys/types.h>
#include <signal.h>
],
[return *(signal (0, 0)) (0) == 1;])],
[ac_cv_type_signal=int],
[ac_cv_type_signal=void])])
[return *(signal (0, 0)) (0) == 1;])],
[ac_cv_type_signal=int],
[ac_cv_type_signal=void])])
AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers
(`int' or `void').])
(`int' or `void').])
AC_FUNC_STAT
AC_FUNC_UTIME_NULL
AC_FUNC_VPRINTF
AC_CHECK_FUNCS([bzero floor gethostbyname gethrtime gettimeofday \
inet_ntoa memset mkdir pathconf pow regcomp select setlocale \
socket strchr strdup strerror strrchr strstr strtol utime])
dnl Check for GNU ccRTP
PKG_PROG_PKG_CONFIG
......@@ -122,6 +94,9 @@ dnl Check for uuid development package - name: uuid-dev
UUID_MIN_VERSION=1.0
PKG_CHECK_MODULES(UUID, uuid >= ${UUID_MIN_VERSION}, HAVE_UUID=true, HAVE_UUID=false);
AC_SEARCH_LIBS([yaml_parser_initialize], [yaml], [AC_SUBST(YAML_LIBS, -lyaml)], [
AC_MSG_ERROR([Unable to find yaml development files])])
LIBCRYPTO_MIN_VERSION=1.0
PKG_CHECK_MODULES(LIBCRYPTO, libcrypto >= ${LIBCRYPTO_MIN_VERSION}, HAVE_LIBCRYPTO=true, HAVE_LIBCRYPTO=false);
......@@ -138,13 +113,15 @@ LIBSAMPLERATE_MIN_VERSION=0.1.2
PKG_CHECK_MODULES(SAMPLERATE, samplerate >= ${LIBSAMPLERATE_MIN_VERSION},, AC_MSG_ERROR([Missing libsamplerate development package: libsamplerate0-dev]))
LIBCCGNU2_MIN_VERSION=1.3.1
PKG_CHECK_MODULES(CCGNU2, libccgnu2 >= ${LIBCCGNU2_MIN_VERSION},, AC_MSG_ERROR([Missing common cpp development package: libcommoncpp2-dev]))
PKG_CHECK_MODULES([CCGNU2], [commoncpp] >= ${LIBCCGNU2_MIN_VERSION}, AC_DEFINE_UNQUOTED([COMMONCPP_PREFIX], [1], [Use commoncpp include prefix]), [
PKG_CHECK_MODULES([CCGNU2], [libccgnu2] >= ${LIBCCGNU2_MIN_VERSION}, AC_DEFINE_UNQUOTED([CCPP_PREFIX], [1], [Use cc++ include prefix]),
AC_MSG_ERROR([Missing common cpp development package: libcommoncpp2-dev]))
])
LIBCCEXT2_MIN_VERSION=1.3.1
PKG_CHECK_MODULES(CCEXT2, libccext2 >= ${LIBCCEXT2_MIN_VERSION})
LIBCCRT_MIN_VERSION=1.3.0
PKG_CHECK_MODULES(CCRTP, libccrtp1 >= ${LIBCCRT_MIN_VERSION},, AC_MSG_ERROR([Missing ccrtp development package: libccrtp-dev]))
LIBCCRTP_MIN_VERSION=1.3.0
PKG_CHECK_MODULES([CCRTP], [libccrtp] >= ${LIBCCRTP_MIN_VERSION},, [
PKG_CHECK_MODULES([CCRTP], [libccrtp1] >= ${LIBCCRTP_MIN_VERSION},, AC_MSG_ERROR([Missing ccrtp development package: libccrtp-dev]))
])
dnl Check for OpenSSL to link against pjsip and provide SIPS TLS support
PKG_CHECK_MODULES([libssl], libssl,, AC_MSG_ERROR([Missing ssl development package: libssl-dev]))
......@@ -158,119 +135,56 @@ dnl pkg-config doesn't like 0.6.0-pre1 version number, it assumes that it is
dnl more recent than (unreleased) 0.6.0
DBUS_CPP_REQUIRED_VERSION=0.6.0-pre1
PKG_CHECK_MODULES(DBUSCPP, dbus-c++-1,,
AC_MSG_ERROR([You need the DBus-c++ libraries (version $DBUS_CPP_REQUIRED_VERSION or better)]))
CXXFLAGS="${CXXFLAGS} -g -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor -Weffc++ -Wfatal-errors"
AC_CHECK_LIB([expat], XML_ParserCreate_MM,
[AC_CHECK_HEADERS(expat.h, have_expat=true, have_expat=false)],
have_expat=false)
test "$have_expat" = false && AC_MSG_ERROR([libexpat development files missing])
xml_CFLAGS=
xml_LIBS=-lexpat
AC_SUBST(xml_CFLAGS)
AC_SUBST(xml_LIBS)
AC_CHECK_LIB([yaml], yaml_parser_initialize,
[AC_CHECK_HEADERS(yaml.h, have_yaml=true, have_yaml=false)],
have_yaml=false)
AC_MSG_ERROR([You need the DBus-c++ libraries (version $DBUS_CPP_REQUIRED_VERSION or better)]))
test "$have_yaml" = "false" && AC_MSG_ERROR([libyaml development files missing])
AX_LIB_EXPAT
yaml_CFLAGS=
yaml_LIBS=-lyaml
AC_SUBST(yaml_CFLAGS)
AC_SUBST(yaml_LIBS)
AX_PTHREAD
AC_CHECK_LIB([pthread], pthread_create,
[AC_CHECK_HEADERS(pthread.h, have_pthread=true, have_pthread=false)],
have_pthread=false)
test "$have_pthread" = "false" && AC_MSG_ERROR([You need the POSIX Thread library (pthreads)])
AC_CHECK_LIB([pcre], pcre_free,
[AC_CHECK_HEADERS(pcre.h, have_pcre=true, have_pcre=false)],
have_pcre=false)
test "$have_pcre" = "false" && AC_MSG_ERROR([You need the Perl-Compatible Regular Expressions library (pcre)])
PCRE_LIBS=-lpcre
PCRE_CFLAGS=
AC_SUBST(PCRE_LIBS)
AC_SUBST(PCRE_CFLAGS)
AX_PATH_LIB_PCRE
dnl Check for libcppunit-dev
CPPUNIT_MIN_VERSION=1.12
PKG_CHECK_MODULES(CPPUNIT, cppunit >= ${CPPUNIT_MIN_VERSION}, AM_CONDITIONAL(BUILD_TEST, test 1 = 1 ), AM_CONDITIONAL(BUILD_TEST, test 0 = 1 ))
# check for libgsm1 (doesn't use pkg-config)
dnl Check for libgsm
dnl check for libgsm1 (doesn't use pkg-config)
dnl Check for libgsm
AC_ARG_WITH([gsm], [AS_HELP_STRING([--without-gsm],
[disable support for gsm codec])], [], [with_gsm=yes])
[disable support for gsm codec])], [], [with_gsm=yes])
LIBGSM=
AS_IF([test "x$with_gsm" != xno],
[AC_CHECK_HEADER([gsm/gsm.h], , AC_MSG_FAILURE([Unable to find the libgsm1 headers (you may need to install the dev package). You may use --without-gsm to compile without gsm codec support.]))]
[AC_CHECK_LIB([gsm], [gsm_decode],
[],
[AC_MSG_FAILURE(
[libgsm link test failed. You may use --without-gsm to compile without gsm codec support.])]
)
]
)
[AC_CHECK_HEADER([gsm/gsm.h], , AC_MSG_FAILURE([Unable to find the libgsm1 headers (you may need to install the dev package). You may use --without-gsm to compile without gsm codec support.]))]
[AC_CHECK_LIB([gsm], [gsm_decode], [], [
AC_MSG_FAILURE([libgsm link test failed. You may use --without-gsm to compile without gsm codec support.])
])
])
AC_DEFINE_UNQUOTED([HAVE_GSM], `if test "x$with_gsm" = "xyes"; then echo 1; else echo 0; fi`, [Define if you have libgsm])
AM_CONDITIONAL(BUILD_GSM, test "x$with_gsm" = "xyes" )
dnl Check for libspeex
AC_ARG_WITH([speex],
[AS_HELP_STRING([--without-speex],
[disable support for speex codec])],
[],
[with_speex=yes])
[AS_HELP_STRING([--without-speex],
[disable support for speex codec])],
[],
[with_speex=yes])
AS_IF([test "x$with_speex" != xno],
[AC_CHECK_HEADER([speex/speex.h], , AC_MSG_FAILURE([Unable to find the libspeex headers (you may need to install the dev package). You may use --without-speex to compile without speex codec support.]))]
[AC_CHECK_LIB([speex], [speex_decode_int],
[],
[AC_MSG_FAILURE([libspeex link test failed. You may use --without-speex to compile without speex codec support.])])
])
[AC_CHECK_HEADER([speex/speex.h], , AC_MSG_FAILURE([Unable to find the libspeex headers (you may need to install the dev package). You may use --without-speex to compile without speex codec support.]))]
[AC_CHECK_LIB([speex], [speex_decode_int],
[],
[AC_MSG_FAILURE([libspeex link test failed. You may use --without-speex to compile without speex codec support.])])
])
AC_DEFINE_UNQUOTED([HAVE_SPEEX], `if test "x$with_speex" = "xyes"; then echo 1; else echo 0; fi`, [Define if you have libspeex])
AM_CONDITIONAL(BUILD_SPEEX, test "x$with_speex" = "xyes" )
dnl check in case the libspeexdsp is not installed
AC_CHECK_HEADER([speex/speex_preprocess.h], , AC_MSG_FAILURE([Unable to find the libspeexdsp headers (you may need to install the libspeexdsp-dev package) used for Noise Suppression and Automatic Gain Control.]))
AC_CHECK_LIB(speexdsp, speex_preprocess_run, [], [], [])
# check for libcelt
AC_ARG_WITH([celt],
[AS_HELP_STRING([--without-celt],
[disable support for celt codec])],
[],
[with_celt=yes])
AS_IF([test "x$with_celt" != xno],
[PKG_CHECK_MODULES(CELT, celt >= 0.9.1,
[
with_celt_91=yes; AC_MSG_NOTICE([Using celt 0.9.1])
],
[
PKG_CHECK_MODULES(CELT, celt >= 0.7.1,
[
with_celt_71=yes; AC_MSG_NOTICE([Using celt 0.7.1])
],
[
AC_MSG_FAILURE([libcelt link test failed. You may use --without-celt to compile without celt codec support.])
])
])]
)
AM_CONDITIONAL(BUILD_CELT_91, test "x$with_celt_91" = "xyes" )
AM_CONDITIONAL(BUILD_CELT_71, test "x$with_celt_71" = "xyes" )
AC_SEARCH_LIBS([speex_preprocess_run], [speexdsp], [], [
AC_MSG_ERROR([Unable to find speexdsp development files])
])
dnl Check for IAX
AC_ARG_WITH([iax2], [AS_HELP_STRING([--without-iax2],
......@@ -279,9 +193,9 @@ AC_ARG_WITH([iax2], [AS_HELP_STRING([--without-iax2],
AC_DEFINE_UNQUOTED([HAVE_IAX], `if test "x$with_iax2" = "xyes"; then echo 1; else echo 0;fi`, [Define if you have libiax2])
AM_CONDITIONAL(USE_IAX, test "x$with_iax2" = "xyes" )
dnl Check for network-manager
dnl Check for network-manager
AC_ARG_WITH([networkmanager], [AS_HELP_STRING([--without-networkmanager],
[disable support for network-manager events])], [],
[disable support for network-manager events])], [],
[with_networkmanager=yes])
AM_CONDITIONAL(USE_NETWORKMANAGER, test "x$with_networkmanager" = "xyes" )
......@@ -298,11 +212,34 @@ AC_DEFUN([BB_ENABLE_DOXYGEN],
AC_PATH_PROG(DOT, dot, , $PATH)
test x$DOT = x -a "x$enable_dot" = xyes && AC_MSG_ERROR([could not find dot])
fi
AM_CONDITIONAL(ENABLE_DOXYGEN, test x$DOXYGEN = xyes)
AM_CONDITIONAL(ENABLE_DOXYGEN, test x$DOXYGEN = xyes)
])
# Acutally perform the doxygen check
BB_ENABLE_DOXYGEN
CXXFLAGS="${CXXFLAGS} -g -Wno-return-type -Wall -Wextra -Wnon-virtual-dtor -Weffc++ -Wfatal-errors"
dnl What to generate
AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([libs/Makefile \
libs/iax2/Makefile])
AC_CONFIG_FILES([src/Makefile \
src/sip/Makefile \
src/im/Makefile \
src/iax/Makefile \
src/audio/Makefile \
src/audio/audiortp/Makefile \
src/audio/pulseaudio/Makefile \
src/audio/alsa/Makefile \
src/audio/sound/Makefile \
src/audio/codecs/Makefile \
src/config/Makefile \
src/dbus/Makefile \
src/hooks/Makefile \
src/history/Makefile])
# Go!
AC_OUTPUT
......
This diff is collapsed.
......@@ -11,20 +11,8 @@ ASTYLERC="$(top_srcdir)/../astylerc"
indent="/usr/bin/astyle"
# for pjsip
PJSIP_LIBS= \
-L$(src)/libs/pjproject/pjnath/lib/ \
-L$(src)/libs/pjproject/pjsip/lib/ \
-L$(src)/libs/pjproject/pjlib/lib/ \
-L$(src)/libs/pjproject/pjlib-util/lib/ \
-L$(src)/libs/pjproject/pjmedia/lib/ \
-lpjnath-$(target) \
-lpjsua-$(target) \
-lpjsip-$(target) \
-lpjmedia-$(target) \
-lpjsip-simple-$(target) \
-lpjsip-ua-$(target) \
-lpjlib-util-$(target) \
-lpj-$(target)
include $(src)/libs/pjproject/build.mak
PJSIP_LIBS=$(APP_LDFLAGS) $(APP_LDLIBS)
SIP_CFLAGS=-I$(src)/libs/pjproject/pjsip/include \
-I$(src)/libs/pjproject/pjlib/include \
......
SUBDIRS = utilspp iax2
SUBDIRS = iax2
EXTRA_DIST=pjproject
This diff is collapsed.
This diff is collapsed.
SUBDIRS = singleton
noinst_LTLIBRARIES = libutilspp.la
libutilspp_la_SOURCES = \
null_type.hpp \
singleton.hpp \
threading_single.hpp threading_single.inl
libutilspp_la_LIBADD = ./singleton/libsingleton.la
/*
* Copyright (c) <2002-2004> <Jean-Philippe Barrette-LaPierre>
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files
* (cURLpp), to deal in the Software without restriction,
* including without limitation the rights to use, copy, modify, merge,
* publish, distribute, sublicense, and/or sell copies of the Software,
* and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef UTILSPP_NULLTYPE_HPP