mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-04-14 08:05:37 +00:00
update
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@1181 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
c0ac721693
commit
021ea0e724
@ -118,7 +118,7 @@ CLEANFILES = src/include/switch_version.h
|
|||||||
lib_LTLIBRARIES = libfreeswitch.la
|
lib_LTLIBRARIES = libfreeswitch.la
|
||||||
libfreeswitch_la_CFLAGS = $(AM_CFLAGS) -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g
|
libfreeswitch_la_CFLAGS = $(AM_CFLAGS) -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g
|
||||||
libfreeswitch_la_LDFLAGS = -version-info 1:0:0
|
libfreeswitch_la_LDFLAGS = -version-info 1:0:0
|
||||||
libfreeswitch_la_LIBADD = -lteletone -lresample -lsrtp -lsqlite3
|
libfreeswitch_la_LIBADD = -lteletone -lresample -lsrtp -lsqlite3 -ljitterbuffer
|
||||||
nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h
|
nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h
|
||||||
|
|
||||||
bin_PROGRAMS = freeswitch
|
bin_PROGRAMS = freeswitch
|
||||||
@ -156,6 +156,7 @@ depends:
|
|||||||
./build/buildlib.sh . libresample-0.1.3.tgz --prefix=$(PREFIX)
|
./build/buildlib.sh . libresample-0.1.3.tgz --prefix=$(PREFIX)
|
||||||
./build/buildlib.sh . install libteletone --prefix=$(PREFIX)
|
./build/buildlib.sh . install libteletone --prefix=$(PREFIX)
|
||||||
./build/buildlib.sh . install srtp --prefix=$(PREFIX)
|
./build/buildlib.sh . install srtp --prefix=$(PREFIX)
|
||||||
|
./build/buildlib.sh . install jitterbuffer --prefix=$(PREFIX)
|
||||||
rm build/freeswitch.env
|
rm build/freeswitch.env
|
||||||
|
|
||||||
|
|
||||||
|
@ -333,7 +333,7 @@ CLEANFILES = src/include/switch_version.h
|
|||||||
lib_LTLIBRARIES = libfreeswitch.la
|
lib_LTLIBRARIES = libfreeswitch.la
|
||||||
libfreeswitch_la_CFLAGS = $(AM_CFLAGS) -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g
|
libfreeswitch_la_CFLAGS = $(AM_CFLAGS) -Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g
|
||||||
libfreeswitch_la_LDFLAGS = -version-info 1:0:0
|
libfreeswitch_la_LDFLAGS = -version-info 1:0:0
|
||||||
libfreeswitch_la_LIBADD = -lteletone -lresample -lsrtp -lsqlite3
|
libfreeswitch_la_LIBADD = -lteletone -lresample -lsrtp -lsqlite3 -ljitterbuffer
|
||||||
nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h
|
nodist_libfreeswitch_la_SOURCES = src/include/switch_version.h
|
||||||
freeswitch_SOURCES = src/switch.c\
|
freeswitch_SOURCES = src/switch.c\
|
||||||
src/include/switch_version.h
|
src/include/switch_version.h
|
||||||
@ -1056,6 +1056,7 @@ depends:
|
|||||||
./build/buildlib.sh . libresample-0.1.3.tgz --prefix=$(PREFIX)
|
./build/buildlib.sh . libresample-0.1.3.tgz --prefix=$(PREFIX)
|
||||||
./build/buildlib.sh . install libteletone --prefix=$(PREFIX)
|
./build/buildlib.sh . install libteletone --prefix=$(PREFIX)
|
||||||
./build/buildlib.sh . install srtp --prefix=$(PREFIX)
|
./build/buildlib.sh . install srtp --prefix=$(PREFIX)
|
||||||
|
./build/buildlib.sh . install jitterbuffer --prefix=$(PREFIX)
|
||||||
rm build/freeswitch.env
|
rm build/freeswitch.env
|
||||||
|
|
||||||
modules: $(NAME)
|
modules: $(NAME)
|
||||||
|
172
aclocal.m4
vendored
172
aclocal.m4
vendored
@ -143,7 +143,7 @@ rm="rm -f"
|
|||||||
default_ofile=libtool
|
default_ofile=libtool
|
||||||
can_build_shared=yes
|
can_build_shared=yes
|
||||||
|
|
||||||
# All known linkers require a `.a' archive for static linking (except MSVC,
|
# All known linkers require a `.a' archive for static linking (except M$VC,
|
||||||
# which needs '.lib').
|
# which needs '.lib').
|
||||||
libext=a
|
libext=a
|
||||||
ltmain="$ac_aux_dir/ltmain.sh"
|
ltmain="$ac_aux_dir/ltmain.sh"
|
||||||
@ -359,8 +359,8 @@ if test "X${echo_test_string+set}" != Xset; then
|
|||||||
# find a string as large as possible, as long as the shell can cope with it
|
# find a string as large as possible, as long as the shell can cope with it
|
||||||
for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
|
for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
|
||||||
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
|
# expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
|
||||||
if (echo_test_string=`eval $cmd`) 2>/dev/null &&
|
if (echo_test_string="`eval $cmd`") 2>/dev/null &&
|
||||||
echo_test_string=`eval $cmd` &&
|
echo_test_string="`eval $cmd`" &&
|
||||||
(test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
|
(test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
|
||||||
then
|
then
|
||||||
break
|
break
|
||||||
@ -529,7 +529,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
|
|||||||
# Find out which ABI we are using.
|
# Find out which ABI we are using.
|
||||||
echo 'int i;' > conftest.$ac_ext
|
echo 'int i;' > conftest.$ac_ext
|
||||||
if AC_TRY_EVAL(ac_compile); then
|
if AC_TRY_EVAL(ac_compile); then
|
||||||
case `/usr/bin/file conftest.o` in
|
case "`/usr/bin/file conftest.o`" in
|
||||||
*32-bit*)
|
*32-bit*)
|
||||||
case $host in
|
case $host in
|
||||||
x86_64-*linux*)
|
x86_64-*linux*)
|
||||||
@ -611,7 +611,7 @@ AC_CACHE_CHECK([$1], [$2],
|
|||||||
# with a dollar sign (not a hyphen), so the echo should work correctly.
|
# with a dollar sign (not a hyphen), so the echo should work correctly.
|
||||||
# The option is referenced via a variable to avoid confusing sed.
|
# The option is referenced via a variable to avoid confusing sed.
|
||||||
lt_compile=`echo "$ac_compile" | $SED \
|
lt_compile=`echo "$ac_compile" | $SED \
|
||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
|
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
|
||||||
@ -650,7 +650,7 @@ AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
|
|||||||
LDFLAGS="$LDFLAGS $3"
|
LDFLAGS="$LDFLAGS $3"
|
||||||
printf "$lt_simple_link_test_code" > conftest.$ac_ext
|
printf "$lt_simple_link_test_code" > conftest.$ac_ext
|
||||||
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
|
if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
|
||||||
# The linker can only warn and ignore the option if not recognized
|
# The compiler can only warn and ignore the option if not recognized
|
||||||
# So say no if there are warnings
|
# So say no if there are warnings
|
||||||
if test -s conftest.err; then
|
if test -s conftest.err; then
|
||||||
# Append any errors to the config.log.
|
# Append any errors to the config.log.
|
||||||
@ -725,7 +725,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
|
|||||||
elif test -x /usr/sbin/sysctl; then
|
elif test -x /usr/sbin/sysctl; then
|
||||||
lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
|
lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
|
||||||
else
|
else
|
||||||
lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
|
lt_cv_sys_max_cmd_len=65536 # usable default for *BSD
|
||||||
fi
|
fi
|
||||||
# And add a safety zone
|
# And add a safety zone
|
||||||
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
|
lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
|
||||||
@ -737,7 +737,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
|
|||||||
# nice to cause kernel panics so lets avoid the loop below.
|
# nice to cause kernel panics so lets avoid the loop below.
|
||||||
# First set a reasonable default.
|
# First set a reasonable default.
|
||||||
lt_cv_sys_max_cmd_len=16384
|
lt_cv_sys_max_cmd_len=16384
|
||||||
#
|
#
|
||||||
if test -x /sbin/sysconfig; then
|
if test -x /sbin/sysconfig; then
|
||||||
case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
|
case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
|
||||||
*1*) lt_cv_sys_max_cmd_len=-1 ;;
|
*1*) lt_cv_sys_max_cmd_len=-1 ;;
|
||||||
@ -854,7 +854,7 @@ int main ()
|
|||||||
}]
|
}]
|
||||||
EOF
|
EOF
|
||||||
if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
|
if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
|
||||||
(./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
|
(./conftest; exit; ) 2>/dev/null
|
||||||
lt_status=$?
|
lt_status=$?
|
||||||
case x$lt_status in
|
case x$lt_status in
|
||||||
x$lt_dlno_uscore) $1 ;;
|
x$lt_dlno_uscore) $1 ;;
|
||||||
@ -1003,7 +1003,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
|
|||||||
# Note that $ac_compile itself does not contain backslashes and begins
|
# Note that $ac_compile itself does not contain backslashes and begins
|
||||||
# with a dollar sign (not a hyphen), so the echo should work correctly.
|
# with a dollar sign (not a hyphen), so the echo should work correctly.
|
||||||
lt_compile=`echo "$ac_compile" | $SED \
|
lt_compile=`echo "$ac_compile" | $SED \
|
||||||
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
|
-e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
|
||||||
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
|
-e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
|
||||||
-e 's:$: $lt_compiler_flag:'`
|
-e 's:$: $lt_compiler_flag:'`
|
||||||
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
|
(eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
|
||||||
@ -1021,7 +1021,7 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
|
|||||||
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
|
_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
chmod u+w . 2>&AS_MESSAGE_LOG_FD
|
chmod u+w .
|
||||||
$rm conftest*
|
$rm conftest*
|
||||||
# SGI C++ compiler will create directory out/ii_files/ for
|
# SGI C++ compiler will create directory out/ii_files/ for
|
||||||
# template instantiation
|
# template instantiation
|
||||||
@ -1281,8 +1281,7 @@ cygwin* | mingw* | pw32*)
|
|||||||
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
|
dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
|
||||||
dldir=$destdir/`dirname \$dlpath`~
|
dldir=$destdir/`dirname \$dlpath`~
|
||||||
test -d \$dldir || mkdir -p \$dldir~
|
test -d \$dldir || mkdir -p \$dldir~
|
||||||
$install_prog $dir/$dlname \$dldir/$dlname~
|
$install_prog $dir/$dlname \$dldir/$dlname'
|
||||||
chmod a+x \$dldir/$dlname'
|
|
||||||
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
|
postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
|
||||||
dlpath=$dir/\$dldll~
|
dlpath=$dir/\$dldll~
|
||||||
$rm \$dlpath'
|
$rm \$dlpath'
|
||||||
@ -1335,7 +1334,7 @@ darwin* | rhapsody*)
|
|||||||
soname_spec='${libname}${release}${major}$shared_ext'
|
soname_spec='${libname}${release}${major}$shared_ext'
|
||||||
shlibpath_overrides_runpath=yes
|
shlibpath_overrides_runpath=yes
|
||||||
shlibpath_var=DYLD_LIBRARY_PATH
|
shlibpath_var=DYLD_LIBRARY_PATH
|
||||||
shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
|
shrext_cmds='$(test .$module = .yes && echo .so || echo .dylib)'
|
||||||
# Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
|
# Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
|
||||||
if test "$GCC" = yes; then
|
if test "$GCC" = yes; then
|
||||||
sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
|
sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
|
||||||
@ -1373,14 +1372,7 @@ kfreebsd*-gnu)
|
|||||||
freebsd* | dragonfly*)
|
freebsd* | dragonfly*)
|
||||||
# DragonFly does not have aout. When/if they implement a new
|
# DragonFly does not have aout. When/if they implement a new
|
||||||
# versioning mechanism, adjust this.
|
# versioning mechanism, adjust this.
|
||||||
if test -x /usr/bin/objformat; then
|
objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
|
||||||
objformat=`/usr/bin/objformat`
|
|
||||||
else
|
|
||||||
case $host_os in
|
|
||||||
freebsd[[123]]*) objformat=aout ;;
|
|
||||||
*) objformat=elf ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
version_type=freebsd-$objformat
|
version_type=freebsd-$objformat
|
||||||
case $version_type in
|
case $version_type in
|
||||||
freebsd-elf*)
|
freebsd-elf*)
|
||||||
@ -1425,7 +1417,7 @@ hpux9* | hpux10* | hpux11*)
|
|||||||
version_type=sunos
|
version_type=sunos
|
||||||
need_lib_prefix=no
|
need_lib_prefix=no
|
||||||
need_version=no
|
need_version=no
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
ia64*)
|
ia64*)
|
||||||
shrext_cmds='.so'
|
shrext_cmds='.so'
|
||||||
hardcode_into_libs=yes
|
hardcode_into_libs=yes
|
||||||
@ -1821,7 +1813,7 @@ AC_DEFUN([AC_LIBTOOL_DLOPEN],
|
|||||||
|
|
||||||
# AC_LIBTOOL_WIN32_DLL
|
# AC_LIBTOOL_WIN32_DLL
|
||||||
# --------------------
|
# --------------------
|
||||||
# declare package support for building win32 DLLs
|
# declare package support for building win32 dll's
|
||||||
AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
|
||||||
[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
|
[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
|
||||||
])# AC_LIBTOOL_WIN32_DLL
|
])# AC_LIBTOOL_WIN32_DLL
|
||||||
@ -1995,7 +1987,7 @@ dnl not every word. This closes a longstanding sh security hole.
|
|||||||
if test -n "$file_magic_test_file"; then
|
if test -n "$file_magic_test_file"; then
|
||||||
case $deplibs_check_method in
|
case $deplibs_check_method in
|
||||||
"file_magic "*)
|
"file_magic "*)
|
||||||
file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
|
file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
|
||||||
MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
|
MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
|
||||||
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
|
if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
|
||||||
$EGREP "$file_magic_regex" > /dev/null; then
|
$EGREP "$file_magic_regex" > /dev/null; then
|
||||||
@ -2105,7 +2097,7 @@ AC_CACHE_VAL(lt_cv_path_LD,
|
|||||||
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
|
||||||
lt_cv_path_LD="$ac_dir/$ac_prog"
|
lt_cv_path_LD="$ac_dir/$ac_prog"
|
||||||
# Check to see if the program is GNU ld. I'd rather use --version,
|
# Check to see if the program is GNU ld. I'd rather use --version,
|
||||||
# but apparently some variants of GNU ld only accept -v.
|
# but apparently some GNU ld's only accept -v.
|
||||||
# Break only if it was the GNU/non-GNU ld that we prefer.
|
# Break only if it was the GNU/non-GNU ld that we prefer.
|
||||||
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
|
case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
|
||||||
*GNU* | *'with BFD'*)
|
*GNU* | *'with BFD'*)
|
||||||
@ -2137,7 +2129,7 @@ AC_PROG_LD_GNU
|
|||||||
AC_DEFUN([AC_PROG_LD_GNU],
|
AC_DEFUN([AC_PROG_LD_GNU],
|
||||||
[AC_REQUIRE([AC_PROG_EGREP])dnl
|
[AC_REQUIRE([AC_PROG_EGREP])dnl
|
||||||
AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
|
AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
|
||||||
[# I'd rather use --version here, but apparently some GNU lds only accept -v.
|
[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
|
||||||
case `$LD -v 2>&1 </dev/null` in
|
case `$LD -v 2>&1 </dev/null` in
|
||||||
*GNU* | *'with BFD'*)
|
*GNU* | *'with BFD'*)
|
||||||
lt_cv_prog_gnu_ld=yes
|
lt_cv_prog_gnu_ld=yes
|
||||||
@ -2251,7 +2243,7 @@ gnu*)
|
|||||||
|
|
||||||
hpux10.20* | hpux11*)
|
hpux10.20* | hpux11*)
|
||||||
lt_cv_file_magic_cmd=/usr/bin/file
|
lt_cv_file_magic_cmd=/usr/bin/file
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
ia64*)
|
ia64*)
|
||||||
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
|
lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
|
||||||
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
|
lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
|
||||||
@ -2425,13 +2417,13 @@ esac
|
|||||||
# -----------------------------------
|
# -----------------------------------
|
||||||
# sets LIBLTDL to the link flags for the libltdl convenience library and
|
# sets LIBLTDL to the link flags for the libltdl convenience library and
|
||||||
# LTDLINCL to the include flags for the libltdl header and adds
|
# LTDLINCL to the include flags for the libltdl header and adds
|
||||||
# --enable-ltdl-convenience to the configure arguments. Note that
|
# --enable-ltdl-convenience to the configure arguments. Note that LIBLTDL
|
||||||
# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
|
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
|
||||||
# it is assumed to be `libltdl'. LIBLTDL will be prefixed with
|
# DIRECTORY is not provided, it is assumed to be `libltdl'. LIBLTDL will
|
||||||
# '${top_builddir}/' and LTDLINCL will be prefixed with '${top_srcdir}/'
|
# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
|
||||||
# (note the single quotes!). If your package is not flat and you're not
|
# '${top_srcdir}/' (note the single quotes!). If your package is not
|
||||||
# using automake, define top_builddir and top_srcdir appropriately in
|
# flat and you're not using automake, define top_builddir and
|
||||||
# the Makefiles.
|
# top_srcdir appropriately in the Makefiles.
|
||||||
AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
|
AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
|
||||||
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||||
case $enable_ltdl_convenience in
|
case $enable_ltdl_convenience in
|
||||||
@ -2450,13 +2442,13 @@ AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
|
|||||||
# -----------------------------------
|
# -----------------------------------
|
||||||
# sets LIBLTDL to the link flags for the libltdl installable library and
|
# sets LIBLTDL to the link flags for the libltdl installable library and
|
||||||
# LTDLINCL to the include flags for the libltdl header and adds
|
# LTDLINCL to the include flags for the libltdl header and adds
|
||||||
# --enable-ltdl-install to the configure arguments. Note that
|
# --enable-ltdl-install to the configure arguments. Note that LIBLTDL
|
||||||
# AC_CONFIG_SUBDIRS is not called here. If DIRECTORY is not provided,
|
# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called. If
|
||||||
# and an installed libltdl is not found, it is assumed to be `libltdl'.
|
# DIRECTORY is not provided and an installed libltdl is not found, it is
|
||||||
# LIBLTDL will be prefixed with '${top_builddir}/'# and LTDLINCL with
|
# assumed to be `libltdl'. LIBLTDL will be prefixed with '${top_builddir}/'
|
||||||
# '${top_srcdir}/' (note the single quotes!). If your package is not
|
# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
|
||||||
# flat and you're not using automake, define top_builddir and top_srcdir
|
# quotes!). If your package is not flat and you're not using automake,
|
||||||
# appropriately in the Makefiles.
|
# define top_builddir and top_srcdir appropriately in the Makefiles.
|
||||||
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
|
# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
|
||||||
AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
|
AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
|
||||||
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
|
||||||
@ -2635,7 +2627,7 @@ test "$can_build_shared" = "no" && enable_shared=no
|
|||||||
|
|
||||||
# On AIX, shared libraries and static libraries use the same namespace, and
|
# On AIX, shared libraries and static libraries use the same namespace, and
|
||||||
# are all built from PIC.
|
# are all built from PIC.
|
||||||
case $host_os in
|
case "$host_os" in
|
||||||
aix3*)
|
aix3*)
|
||||||
test "$enable_shared" = yes && enable_static=no
|
test "$enable_shared" = yes && enable_static=no
|
||||||
if test -n "$RANLIB"; then
|
if test -n "$RANLIB"; then
|
||||||
@ -2702,7 +2694,7 @@ _LT_AC_TAGVAR(postdeps, $1)=
|
|||||||
_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
|
_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
|
||||||
|
|
||||||
# Source file extension for C++ test sources.
|
# Source file extension for C++ test sources.
|
||||||
ac_ext=cpp
|
ac_ext=cc
|
||||||
|
|
||||||
# Object file extension for compiled C++ test sources.
|
# Object file extension for compiled C++ test sources.
|
||||||
objext=o
|
objext=o
|
||||||
@ -2918,7 +2910,7 @@ case $host_os in
|
|||||||
# Exported symbols can be pulled into shared objects from archives
|
# Exported symbols can be pulled into shared objects from archives
|
||||||
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
|
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
|
||||||
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
|
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
|
||||||
# This is similar to how AIX traditionally builds its shared libraries.
|
# This is similar to how AIX traditionally builds it's shared libraries.
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -2957,7 +2949,7 @@ case $host_os in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
darwin* | rhapsody*)
|
darwin* | rhapsody*)
|
||||||
case $host_os in
|
case "$host_os" in
|
||||||
rhapsody* | darwin1.[[012]])
|
rhapsody* | darwin1.[[012]])
|
||||||
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
|
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
|
||||||
;;
|
;;
|
||||||
@ -2995,7 +2987,7 @@ case $host_os in
|
|||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
||||||
fi
|
fi
|
||||||
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||||
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
|
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
|
||||||
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
|
if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
else
|
else
|
||||||
@ -3008,7 +3000,7 @@ case $host_os in
|
|||||||
output_verbose_link_cmd='echo'
|
output_verbose_link_cmd='echo'
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
|
||||||
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||||
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
|
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
;;
|
;;
|
||||||
@ -3088,7 +3080,7 @@ case $host_os in
|
|||||||
;;
|
;;
|
||||||
hpux10*|hpux11*)
|
hpux10*|hpux11*)
|
||||||
if test $with_gnu_ld = no; then
|
if test $with_gnu_ld = no; then
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*)
|
hppa*64*)
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
|
||||||
@ -3104,7 +3096,7 @@ case $host_os in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*)
|
hppa*64*)
|
||||||
_LT_AC_TAGVAR(hardcode_direct, $1)=no
|
_LT_AC_TAGVAR(hardcode_direct, $1)=no
|
||||||
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|
||||||
@ -3130,7 +3122,7 @@ case $host_os in
|
|||||||
_LT_AC_TAGVAR(ld_shlibs, $1)=no
|
_LT_AC_TAGVAR(ld_shlibs, $1)=no
|
||||||
;;
|
;;
|
||||||
aCC*)
|
aCC*)
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
|
||||||
;;
|
;;
|
||||||
@ -3151,7 +3143,7 @@ case $host_os in
|
|||||||
*)
|
*)
|
||||||
if test "$GXX" = yes; then
|
if test "$GXX" = yes; then
|
||||||
if test $with_gnu_ld = no; then
|
if test $with_gnu_ld = no; then
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
ia64*|hppa*64*)
|
ia64*|hppa*64*)
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
|
||||||
;;
|
;;
|
||||||
@ -3252,7 +3244,7 @@ case $host_os in
|
|||||||
|
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
|
||||||
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
|
_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
|
||||||
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||||
;;
|
;;
|
||||||
cxx*)
|
cxx*)
|
||||||
# Compaq C++
|
# Compaq C++
|
||||||
@ -3484,11 +3476,10 @@ case $host_os in
|
|||||||
case $cc_basename in
|
case $cc_basename in
|
||||||
CC*)
|
CC*)
|
||||||
# Sun C++ 4.2, 5.x and Centerline C++
|
# Sun C++ 4.2, 5.x and Centerline C++
|
||||||
_LT_AC_TAGVAR(archive_cmds_need_lc,$1)=yes
|
|
||||||
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
|
_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
|
||||||
$CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
|
$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
|
||||||
|
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
|
||||||
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|
_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
|
||||||
@ -3508,7 +3499,15 @@ case $host_os in
|
|||||||
esac
|
esac
|
||||||
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
|
_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
|
||||||
|
|
||||||
output_verbose_link_cmd='echo'
|
# Commands to make compiler produce verbose output that lists
|
||||||
|
# what "hidden" libraries, object files and flags are used when
|
||||||
|
# linking a shared library.
|
||||||
|
#
|
||||||
|
# There doesn't appear to be a way to prevent this compiler from
|
||||||
|
# explicitly linking system object files so we need to strip them
|
||||||
|
# from the output so that they don't get included in the library
|
||||||
|
# dependencies.
|
||||||
|
output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
|
||||||
|
|
||||||
# Archives containing C++ object files must be created using
|
# Archives containing C++ object files must be created using
|
||||||
# "CC -xar", where "CC" is the Sun C++ compiler. This is
|
# "CC -xar", where "CC" is the Sun C++ compiler. This is
|
||||||
@ -3665,7 +3664,7 @@ if AC_TRY_EVAL(ac_compile); then
|
|||||||
# The `*' in the case matches for architectures that use `case' in
|
# The `*' in the case matches for architectures that use `case' in
|
||||||
# $output_verbose_cmd can trigger glob expansion during the loop
|
# $output_verbose_cmd can trigger glob expansion during the loop
|
||||||
# eval without this substitution.
|
# eval without this substitution.
|
||||||
output_verbose_link_cmd=`$echo "X$output_verbose_link_cmd" | $Xsed -e "$no_glob_subst"`
|
output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
|
||||||
|
|
||||||
for p in `eval $output_verbose_link_cmd`; do
|
for p in `eval $output_verbose_link_cmd`; do
|
||||||
case $p in
|
case $p in
|
||||||
@ -3741,21 +3740,6 @@ fi
|
|||||||
|
|
||||||
$rm -f confest.$objext
|
$rm -f confest.$objext
|
||||||
|
|
||||||
# PORTME: override above test on systems where it is broken
|
|
||||||
ifelse([$1],[CXX],
|
|
||||||
[case $host_os in
|
|
||||||
solaris*)
|
|
||||||
case $cc_basename in
|
|
||||||
CC*)
|
|
||||||
# Adding this requires a known-good setup of shared libraries for
|
|
||||||
# Sun compiler versions before 5.6, else PIC objects from an old
|
|
||||||
# archive will be linked into the output, leading to subtle bugs.
|
|
||||||
_LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun'
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
esac
|
|
||||||
])
|
|
||||||
|
|
||||||
case " $_LT_AC_TAGVAR(postdeps, $1) " in
|
case " $_LT_AC_TAGVAR(postdeps, $1) " in
|
||||||
*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
|
*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
|
||||||
esac
|
esac
|
||||||
@ -3825,7 +3809,7 @@ test "$can_build_shared" = "no" && enable_shared=no
|
|||||||
|
|
||||||
# On AIX, shared libraries and static libraries use the same namespace, and
|
# On AIX, shared libraries and static libraries use the same namespace, and
|
||||||
# are all built from PIC.
|
# are all built from PIC.
|
||||||
case $host_os in
|
case "$host_os" in
|
||||||
aix3*)
|
aix3*)
|
||||||
test "$enable_shared" = yes && enable_static=no
|
test "$enable_shared" = yes && enable_static=no
|
||||||
if test -n "$RANLIB"; then
|
if test -n "$RANLIB"; then
|
||||||
@ -4724,7 +4708,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
hpux*)
|
hpux*)
|
||||||
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
||||||
# not for PA HP-UX.
|
# not for PA HP-UX.
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -4793,7 +4777,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
aCC*)
|
aCC*)
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
|
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
# +Z the default
|
# +Z the default
|
||||||
;;
|
;;
|
||||||
@ -4834,7 +4818,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
# Portland Group C++ compiler.
|
# Portland Group C++ compiler.
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
|
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
|
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
|
||||||
;;
|
;;
|
||||||
cxx*)
|
cxx*)
|
||||||
# Compaq C++
|
# Compaq C++
|
||||||
@ -4998,7 +4982,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
hpux*)
|
hpux*)
|
||||||
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
||||||
# not for PA HP-UX.
|
# not for PA HP-UX.
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
# +Z the default
|
# +Z the default
|
||||||
;;
|
;;
|
||||||
@ -5045,7 +5029,7 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
||||||
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
# PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
|
||||||
# not for PA HP-UX.
|
# not for PA HP-UX.
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
# +Z the default
|
# +Z the default
|
||||||
;;
|
;;
|
||||||
@ -5075,12 +5059,12 @@ AC_MSG_CHECKING([for $compiler option to produce PIC])
|
|||||||
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
|
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
|
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
|
||||||
;;
|
;;
|
||||||
pgcc* | pgf77* | pgf90* | pgf95*)
|
pgcc* | pgf77* | pgf90*)
|
||||||
# Portland Group compilers (*not* the Pentium gcc compiler,
|
# Portland Group compilers (*not* the Pentium gcc compiler,
|
||||||
# which looks to be a dead project)
|
# which looks to be a dead project)
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
|
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
|
_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
|
||||||
;;
|
;;
|
||||||
ccc*)
|
ccc*)
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
|
||||||
@ -5163,7 +5147,7 @@ if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
|
|||||||
[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
|
[_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
|
_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
|
||||||
fi
|
fi
|
||||||
case $host_os in
|
case "$host_os" in
|
||||||
# For platforms which do not support PIC, -DPIC is meaningless:
|
# For platforms which do not support PIC, -DPIC is meaningless:
|
||||||
*djgpp*)
|
*djgpp*)
|
||||||
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
|
_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
|
||||||
@ -5259,7 +5243,7 @@ ifelse([$1],[CXX],[
|
|||||||
if test "$with_gnu_ld" = yes; then
|
if test "$with_gnu_ld" = yes; then
|
||||||
# If archive_cmds runs LD, not CC, wlarc should be empty
|
# If archive_cmds runs LD, not CC, wlarc should be empty
|
||||||
wlarc='${wl}'
|
wlarc='${wl}'
|
||||||
|
|
||||||
# Set some defaults for GNU ld with shared library support. These
|
# Set some defaults for GNU ld with shared library support. These
|
||||||
# are reset later if shared libraries are not supported. Putting them
|
# are reset later if shared libraries are not supported. Putting them
|
||||||
# here allows them to be overridden if necessary.
|
# here allows them to be overridden if necessary.
|
||||||
@ -5280,7 +5264,7 @@ ifelse([$1],[CXX],[
|
|||||||
*\ 2.11.*) ;; # other 2.11 versions
|
*\ 2.11.*) ;; # other 2.11 versions
|
||||||
*) supports_anon_versioning=yes ;;
|
*) supports_anon_versioning=yes ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# See if GNU ld supports shared libraries.
|
# See if GNU ld supports shared libraries.
|
||||||
case $host_os in
|
case $host_os in
|
||||||
aix3* | aix4* | aix5*)
|
aix3* | aix4* | aix5*)
|
||||||
@ -5354,11 +5338,11 @@ EOF
|
|||||||
tmp_addflag=
|
tmp_addflag=
|
||||||
case $cc_basename,$host_cpu in
|
case $cc_basename,$host_cpu in
|
||||||
pgcc*) # Portland Group C compiler
|
pgcc*) # Portland Group C compiler
|
||||||
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||||
tmp_addflag=' $pic_flag'
|
tmp_addflag=' $pic_flag'
|
||||||
;;
|
;;
|
||||||
pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers
|
pgf77* | pgf90* ) # Portland Group f77 and f90 compilers
|
||||||
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive,`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive'
|
||||||
tmp_addflag=' $pic_flag -Mnomain' ;;
|
tmp_addflag=' $pic_flag -Mnomain' ;;
|
||||||
ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
|
ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
|
||||||
tmp_addflag=' -i_dynamic' ;;
|
tmp_addflag=' -i_dynamic' ;;
|
||||||
@ -5564,7 +5548,7 @@ EOF
|
|||||||
# Exported symbols can be pulled into shared objects from archives
|
# Exported symbols can be pulled into shared objects from archives
|
||||||
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
|
_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
|
||||||
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
|
_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
|
||||||
# This is similar to how AIX traditionally builds its shared libraries.
|
# This is similar to how AIX traditionally builds it's shared libraries.
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -5604,7 +5588,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
darwin* | rhapsody*)
|
darwin* | rhapsody*)
|
||||||
case $host_os in
|
case "$host_os" in
|
||||||
rhapsody* | darwin1.[[012]])
|
rhapsody* | darwin1.[[012]])
|
||||||
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
|
_LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress'
|
||||||
;;
|
;;
|
||||||
@ -5633,7 +5617,7 @@ EOF
|
|||||||
output_verbose_link_cmd='echo'
|
output_verbose_link_cmd='echo'
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
|
||||||
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||||
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
|
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
else
|
else
|
||||||
@ -5642,7 +5626,7 @@ EOF
|
|||||||
output_verbose_link_cmd='echo'
|
output_verbose_link_cmd='echo'
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring'
|
||||||
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
_LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
|
||||||
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
|
# Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
|
||||||
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
_LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
|
||||||
;;
|
;;
|
||||||
@ -5708,7 +5692,7 @@ EOF
|
|||||||
|
|
||||||
hpux10* | hpux11*)
|
hpux10* | hpux11*)
|
||||||
if test "$GCC" = yes -a "$with_gnu_ld" = no; then
|
if test "$GCC" = yes -a "$with_gnu_ld" = no; then
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
|
||||||
;;
|
;;
|
||||||
@ -5717,7 +5701,7 @@ EOF
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*|ia64*)
|
hppa*64*|ia64*)
|
||||||
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
|
_LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
|
||||||
;;
|
;;
|
||||||
@ -5727,7 +5711,7 @@ EOF
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
if test "$with_gnu_ld" = no; then
|
if test "$with_gnu_ld" = no; then
|
||||||
case $host_cpu in
|
case "$host_cpu" in
|
||||||
hppa*64*)
|
hppa*64*)
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
|
||||||
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
|
_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
|
||||||
|
@ -46,6 +46,12 @@ extern "C" {
|
|||||||
struct switch_frame {
|
struct switch_frame {
|
||||||
/*! a pointer to the codec information */
|
/*! a pointer to the codec information */
|
||||||
switch_codec *codec;
|
switch_codec *codec;
|
||||||
|
/*! the originating source of the frame */
|
||||||
|
const char *source;
|
||||||
|
/*! the raw packet */
|
||||||
|
void *packet;
|
||||||
|
/*! the size of the raw packet when applicable*/
|
||||||
|
uint32_t packetlen;
|
||||||
/*! the frame data */
|
/*! the frame data */
|
||||||
void *data;
|
void *data;
|
||||||
/*! the size of the buffer that is in use */
|
/*! the size of the buffer that is in use */
|
||||||
@ -56,6 +62,10 @@ struct switch_frame {
|
|||||||
uint32_t samples;
|
uint32_t samples;
|
||||||
/*! the rate of the frame */
|
/*! the rate of the frame */
|
||||||
uint32_t rate;
|
uint32_t rate;
|
||||||
|
/*! the payload of the frame */
|
||||||
|
uint32_t payload;
|
||||||
|
/*! the timestamp of the frame */
|
||||||
|
uint32_t timestamp;
|
||||||
/*! frame flags */
|
/*! frame flags */
|
||||||
switch_frame_flag flags;
|
switch_frame_flag flags;
|
||||||
};
|
};
|
||||||
|
@ -244,15 +244,24 @@ SWITCH_DECLARE(switch_status) switch_rtp_read(switch_rtp *rtp_session, void *dat
|
|||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read(switch_rtp *rtp_session, void **data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags);
|
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read(switch_rtp *rtp_session, void **data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief Read data from a given RTP session without copying
|
||||||
|
\param rtp_session the RTP session to read from
|
||||||
|
\param frame a frame to populate with information
|
||||||
|
\return the number of bytes read
|
||||||
|
*/
|
||||||
|
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read_frame(switch_rtp *rtp_session, switch_frame *frame);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Write data to a given RTP session
|
\brief Write data to a given RTP session
|
||||||
\param rtp_session the RTP session to write to
|
\param rtp_session the RTP session to write to
|
||||||
\param data data to write
|
\param data data to write
|
||||||
\param datalen the size of the data
|
\param datalen the size of the data
|
||||||
\param ts then number of bytes to increment the timestamp by
|
\param ts then number of bytes to increment the timestamp by
|
||||||
|
\param flags frame flags
|
||||||
\return the number of bytes written
|
\return the number of bytes written
|
||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint32_t ts);
|
SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint32_t ts, switch_frame_flag *flags);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Write data with a specified payload and sequence number to a given RTP session
|
\brief Write data with a specified payload and sequence number to a given RTP session
|
||||||
@ -262,9 +271,10 @@ SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32
|
|||||||
\param payload the IANA payload number
|
\param payload the IANA payload number
|
||||||
\param ts then number of bytes to increment the timestamp by
|
\param ts then number of bytes to increment the timestamp by
|
||||||
\param mseq the specific sequence number to use
|
\param mseq the specific sequence number to use
|
||||||
|
\param flags frame flags
|
||||||
\return the number of bytes written
|
\return the number of bytes written
|
||||||
*/
|
*/
|
||||||
SWITCH_DECLARE(int) switch_rtp_write_payload(switch_rtp *rtp_session, void *data, uint16_t datalen, uint8_t payload, uint32_t ts, uint16_t mseq);
|
SWITCH_DECLARE(int) switch_rtp_write_payload(switch_rtp *rtp_session, void *data, uint16_t datalen, uint8_t payload, uint32_t ts, uint16_t mseq, switch_frame_flag *flags);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief Retrieve the SSRC from a given RTP session
|
\brief Retrieve the SSRC from a given RTP session
|
||||||
|
@ -103,6 +103,7 @@ SWITCH_DECLARE_DATA extern switch_directories SWITCH_GLOBAL_dirs;
|
|||||||
SWITCH_RTP_FLAG_USE_TIMER - Timeout Reads and replace with a CNG Frame
|
SWITCH_RTP_FLAG_USE_TIMER - Timeout Reads and replace with a CNG Frame
|
||||||
SWITCH_RTP_FLAG_SECURE - Secure RTP
|
SWITCH_RTP_FLAG_SECURE - Secure RTP
|
||||||
SWITCH_RTP_FLAG_AUTOADJ - Auto-Adjust the dest based on the source
|
SWITCH_RTP_FLAG_AUTOADJ - Auto-Adjust the dest based on the source
|
||||||
|
SWITCH_RTP_FLAG_RAW_WRITE - Try to forward packets unscathed
|
||||||
</pre>
|
</pre>
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
@ -110,7 +111,8 @@ typedef enum {
|
|||||||
SWITCH_RTP_FLAG_IO = (1 << 1),
|
SWITCH_RTP_FLAG_IO = (1 << 1),
|
||||||
SWITCH_RTP_FLAG_USE_TIMER = (1 << 2),
|
SWITCH_RTP_FLAG_USE_TIMER = (1 << 2),
|
||||||
SWITCH_RTP_FLAG_SECURE = (1 << 3),
|
SWITCH_RTP_FLAG_SECURE = (1 << 3),
|
||||||
SWITCH_RTP_FLAG_AUTOADJ = (1 << 4)
|
SWITCH_RTP_FLAG_AUTOADJ = (1 << 4),
|
||||||
|
SWITCH_RTP_FLAG_RAW_WRITE = (1 << 5)
|
||||||
} switch_rtp_flag_t;
|
} switch_rtp_flag_t;
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
@ -316,11 +318,13 @@ typedef enum {
|
|||||||
\brief Frame Flags
|
\brief Frame Flags
|
||||||
|
|
||||||
<pre>
|
<pre>
|
||||||
CF_CNG = (1 << 0) - Frame represents comfort noise
|
SFF_CNG = (1 << 0) - Frame represents comfort noise
|
||||||
|
SFF_RAW_RTP = (1 << 1) - Frame has raw rtp accessible
|
||||||
</pre>
|
</pre>
|
||||||
*/
|
*/
|
||||||
typedef enum {
|
typedef enum {
|
||||||
SFF_CNG = (1 << 0)
|
SFF_CNG = (1 << 0),
|
||||||
|
SFF_RAW_RTP = (1 << 1)
|
||||||
} switch_frame_flag;
|
} switch_frame_flag;
|
||||||
|
|
||||||
|
|
||||||
|
@ -815,7 +815,7 @@ static switch_status channel_write_frame(switch_core_session *session, switch_fr
|
|||||||
|
|
||||||
|
|
||||||
for (x = 0; x < loops; x++) {
|
for (x = 0; x < loops; x++) {
|
||||||
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
|
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq, &frame->flags);
|
||||||
/*
|
/*
|
||||||
printf("Send %s packet for [%c] ts=%d sofar=%u dur=%d\n", loops == 1 ? "middle" : "end", tech_pvt->out_digit, ts,
|
printf("Send %s packet for [%c] ts=%d sofar=%u dur=%d\n", loops == 1 ? "middle" : "end", tech_pvt->out_digit, ts,
|
||||||
tech_pvt->out_digit_sofar, duration);
|
tech_pvt->out_digit_sofar, duration);
|
||||||
@ -840,7 +840,7 @@ static switch_status channel_write_frame(switch_core_session *session, switch_fr
|
|||||||
ts = tech_pvt->timestamp_dtmf += samples;
|
ts = tech_pvt->timestamp_dtmf += samples;
|
||||||
tech_pvt->out_digit_seq++;
|
tech_pvt->out_digit_seq++;
|
||||||
for (x = 0; x < 3; x++) {
|
for (x = 0; x < 3; x++) {
|
||||||
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
|
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq, &frame->flags);
|
||||||
/*
|
/*
|
||||||
printf("Send start packet for [%c] ts=%d sofar=%u dur=%d\n", tech_pvt->out_digit, ts,
|
printf("Send start packet for [%c] ts=%d sofar=%u dur=%d\n", tech_pvt->out_digit, ts,
|
||||||
tech_pvt->out_digit_sofar, 0);
|
tech_pvt->out_digit_sofar, 0);
|
||||||
@ -858,7 +858,7 @@ static switch_status channel_write_frame(switch_core_session *session, switch_fr
|
|||||||
//printf("%s send %d bytes %d samples in %d frames ts=%d\n", switch_channel_get_name(channel), frame->datalen, samples, frames, tech_pvt->timestamp_send);
|
//printf("%s send %d bytes %d samples in %d frames ts=%d\n", switch_channel_get_name(channel), frame->datalen, samples, frames, tech_pvt->timestamp_send);
|
||||||
|
|
||||||
|
|
||||||
if (switch_rtp_write(tech_pvt->rtp_session, frame->data, frame->datalen, samples) < 0) {
|
if (switch_rtp_write(tech_pvt->rtp_session, frame->data, frame->datalen, samples, &frame->flags) < 0) {
|
||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
}
|
}
|
||||||
tech_pvt->timestamp_send += (int) samples;
|
tech_pvt->timestamp_send += (int) samples;
|
||||||
|
@ -604,15 +604,12 @@ static switch_status exosip_read_frame(switch_core_session *session, switch_fram
|
|||||||
&& tech_pvt->read_frame.datalen == 0) {
|
&& tech_pvt->read_frame.datalen == 0) {
|
||||||
now = switch_time_now();
|
now = switch_time_now();
|
||||||
tech_pvt->read_frame.flags = 0;
|
tech_pvt->read_frame.flags = 0;
|
||||||
if (switch_rtp_zerocopy_read(tech_pvt->rtp_session,
|
if (switch_rtp_zerocopy_read_frame(tech_pvt->rtp_session, &tech_pvt->read_frame) != SWITCH_STATUS_SUCCESS) {
|
||||||
&tech_pvt->read_frame.data,
|
|
||||||
&tech_pvt->read_frame.datalen,
|
|
||||||
&payload,
|
|
||||||
&tech_pvt->read_frame.flags) != SWITCH_STATUS_SUCCESS) {
|
|
||||||
|
|
||||||
return SWITCH_STATUS_FALSE;
|
return SWITCH_STATUS_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
payload = tech_pvt->read_frame.payload;
|
||||||
|
|
||||||
if (timeout > -1) {
|
if (timeout > -1) {
|
||||||
elapsed = (unsigned int)((switch_time_now() - started) / 1000);
|
elapsed = (unsigned int)((switch_time_now() - started) / 1000);
|
||||||
if (elapsed >= (unsigned int)timeout) {
|
if (elapsed >= (unsigned int)timeout) {
|
||||||
@ -735,7 +732,7 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
|
|||||||
|
|
||||||
|
|
||||||
for (x = 0; x < loops; x++) {
|
for (x = 0; x < loops; x++) {
|
||||||
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
|
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq, &frame->flags);
|
||||||
printf("Send %s packet for [%c] ts=%d sofar=%u dur=%d\n",
|
printf("Send %s packet for [%c] ts=%d sofar=%u dur=%d\n",
|
||||||
loops == 1 ? "middle" : "end",
|
loops == 1 ? "middle" : "end",
|
||||||
tech_pvt->out_digit,
|
tech_pvt->out_digit,
|
||||||
@ -762,7 +759,7 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
|
|||||||
ts = tech_pvt->timestamp_dtmf += samples;
|
ts = tech_pvt->timestamp_dtmf += samples;
|
||||||
tech_pvt->out_digit_seq++;
|
tech_pvt->out_digit_seq++;
|
||||||
for (x = 0; x < 3; x++) {
|
for (x = 0; x < 3; x++) {
|
||||||
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq);
|
switch_rtp_write_payload(tech_pvt->rtp_session, tech_pvt->out_digit_packet, 4, 101, ts, tech_pvt->out_digit_seq, &frame->flags);
|
||||||
printf("Send start packet for [%c] ts=%d sofar=%u dur=%d\n", tech_pvt->out_digit, ts,
|
printf("Send start packet for [%c] ts=%d sofar=%u dur=%d\n", tech_pvt->out_digit, ts,
|
||||||
tech_pvt->out_digit_sofar, 0);
|
tech_pvt->out_digit_sofar, 0);
|
||||||
}
|
}
|
||||||
@ -776,7 +773,7 @@ static switch_status exosip_write_frame(switch_core_session *session, switch_fra
|
|||||||
//printf("%s %s->%s send %d bytes %d samples in %d frames taking up %d ms ts=%d\n", switch_channel_get_name(channel), tech_pvt->local_sdp_audio_ip, tech_pvt->remote_sdp_audio_ip, frame->datalen, samples, frames, ms, tech_pvt->timestamp_send);
|
//printf("%s %s->%s send %d bytes %d samples in %d frames taking up %d ms ts=%d\n", switch_channel_get_name(channel), tech_pvt->local_sdp_audio_ip, tech_pvt->remote_sdp_audio_ip, frame->datalen, samples, frames, ms, tech_pvt->timestamp_send);
|
||||||
|
|
||||||
|
|
||||||
switch_rtp_write(tech_pvt->rtp_session, frame->data, (int) frame->datalen, samples);
|
switch_rtp_write(tech_pvt->rtp_session, frame->data, (int) frame->datalen, samples, &frame->flags);
|
||||||
tech_pvt->timestamp_send += (int) samples;
|
tech_pvt->timestamp_send += (int) samples;
|
||||||
|
|
||||||
switch_clear_flag(tech_pvt, TFLAG_WRITING);
|
switch_clear_flag(tech_pvt, TFLAG_WRITING);
|
||||||
|
@ -487,7 +487,7 @@ SWITCH_DECLARE(void) switch_rtp_clear_flag(switch_rtp *rtp_session, switch_rtp_f
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtp_common_read(switch_rtp *rtp_session, void *data, int *payload_type, switch_frame_flag *flags)
|
static int rtp_common_read(switch_rtp *rtp_session, int *payload_type, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
switch_size_t bytes;
|
switch_size_t bytes;
|
||||||
switch_status status;
|
switch_status status;
|
||||||
@ -566,17 +566,19 @@ static int rtp_common_read(switch_rtp *rtp_session, void *data, int *payload_typ
|
|||||||
*flags |= SFF_CNG;
|
*flags |= SFF_CNG;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (int)(bytes - rtp_header_len);
|
return (int) bytes;
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(switch_status) switch_rtp_read(switch_rtp *rtp_session, void *data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags)
|
SWITCH_DECLARE(switch_status) switch_rtp_read(switch_rtp *rtp_session, void *data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
int bytes = rtp_common_read(rtp_session, data, payload_type, flags);
|
int bytes = rtp_common_read(rtp_session, payload_type, flags);
|
||||||
|
|
||||||
if (bytes < 0) {
|
if (bytes < 0) {
|
||||||
*datalen = 0;
|
*datalen = 0;
|
||||||
return SWITCH_STATUS_GENERR;
|
return SWITCH_STATUS_GENERR;
|
||||||
|
} else {
|
||||||
|
bytes -= rtp_header_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
*datalen = bytes;
|
*datalen = bytes;
|
||||||
@ -586,58 +588,91 @@ SWITCH_DECLARE(switch_status) switch_rtp_read(switch_rtp *rtp_session, void *dat
|
|||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read_frame(switch_rtp *rtp_session, switch_frame *frame)
|
||||||
|
{
|
||||||
|
int bytes = rtp_common_read(rtp_session, &frame->payload, &frame->flags);
|
||||||
|
|
||||||
|
frame->data = rtp_session->recv_msg.body;
|
||||||
|
frame->packet = &rtp_session->recv_msg;
|
||||||
|
frame->packetlen = bytes;
|
||||||
|
frame->source = __FILE__;
|
||||||
|
frame->flags |= SFF_RAW_RTP;
|
||||||
|
|
||||||
|
if (bytes < 0) {
|
||||||
|
frame->datalen = 0;
|
||||||
|
return SWITCH_STATUS_GENERR;
|
||||||
|
} else {
|
||||||
|
bytes -= rtp_header_len;
|
||||||
|
}
|
||||||
|
|
||||||
|
frame->datalen = bytes;
|
||||||
|
return SWITCH_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read(switch_rtp *rtp_session, void **data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags)
|
SWITCH_DECLARE(switch_status) switch_rtp_zerocopy_read(switch_rtp *rtp_session, void **data, uint32_t *datalen, int *payload_type, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
int bytes = rtp_common_read(rtp_session, data, payload_type, flags);
|
int bytes = rtp_common_read(rtp_session, payload_type, flags);
|
||||||
*data = rtp_session->recv_msg.body;
|
*data = rtp_session->recv_msg.body;
|
||||||
|
|
||||||
if (bytes < 0) {
|
if (bytes < 0) {
|
||||||
*datalen = 0;
|
*datalen = 0;
|
||||||
return SWITCH_STATUS_GENERR;
|
return SWITCH_STATUS_GENERR;
|
||||||
|
} else {
|
||||||
|
bytes -= rtp_header_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
*datalen = bytes;
|
*datalen = bytes;
|
||||||
return SWITCH_STATUS_SUCCESS;
|
return SWITCH_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rtp_common_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint8_t payload)
|
static int rtp_common_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint8_t payload, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
switch_size_t bytes;
|
switch_size_t bytes;
|
||||||
|
uint8_t fwd = (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_RAW_WRITE) && (*flags & SFF_RAW_RTP)) ? 1 : 0;
|
||||||
|
rtp_msg_t *send_msg;
|
||||||
|
|
||||||
if (rtp_session->packet_size > datalen && (payload == rtp_session->payload)) {
|
if (fwd) {
|
||||||
if (!rtp_session->packet_buffer) {
|
bytes = datalen;
|
||||||
if (switch_buffer_create(rtp_session->pool, &rtp_session->packet_buffer, rtp_session->packet_size * 2) != SWITCH_STATUS_SUCCESS) {
|
send_msg = (rtp_msg_t *) data;
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Buffer memory error\n");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
switch_buffer_write(rtp_session->packet_buffer, data, datalen);
|
|
||||||
if (switch_buffer_inuse(rtp_session->packet_buffer) >= rtp_session->packet_size) {
|
|
||||||
switch_buffer_read(rtp_session->packet_buffer, rtp_session->send_msg.body, rtp_session->packet_size);
|
|
||||||
datalen = rtp_session->packet_size;
|
|
||||||
} else {
|
|
||||||
return datalen;
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
memcpy(rtp_session->send_msg.body, data, datalen);
|
send_msg = &rtp_session->send_msg;
|
||||||
|
send_msg->header.pt = rtp_session->payload;
|
||||||
|
if (rtp_session->packet_size > datalen && (payload == rtp_session->payload)) {
|
||||||
|
if (!rtp_session->packet_buffer) {
|
||||||
|
if (switch_buffer_create(rtp_session->pool, &rtp_session->packet_buffer, rtp_session->packet_size * 2) != SWITCH_STATUS_SUCCESS) {
|
||||||
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Buffer memory error\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch_buffer_write(rtp_session->packet_buffer, data, datalen);
|
||||||
|
if (switch_buffer_inuse(rtp_session->packet_buffer) >= rtp_session->packet_size) {
|
||||||
|
switch_buffer_read(rtp_session->packet_buffer, send_msg->body, rtp_session->packet_size);
|
||||||
|
datalen = rtp_session->packet_size;
|
||||||
|
} else {
|
||||||
|
return datalen;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
memcpy(send_msg->body, data, datalen);
|
||||||
|
}
|
||||||
|
bytes = datalen + rtp_header_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes = datalen + rtp_header_len;
|
|
||||||
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_SECURE)) {
|
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_SECURE)) {
|
||||||
int sbytes = (int)bytes;
|
int sbytes = (int)bytes;
|
||||||
err_status_t stat;
|
err_status_t stat;
|
||||||
|
|
||||||
stat = srtp_protect(rtp_session->send_ctx, &rtp_session->send_msg.header, &sbytes);
|
stat = srtp_protect(rtp_session->send_ctx, &send_msg->header, &sbytes);
|
||||||
if (stat) {
|
if (stat) {
|
||||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error: srtp unprotection failed with code %d\n", stat);
|
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "error: srtp unprotection failed with code %d\n", stat);
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes = sbytes;
|
bytes = sbytes;
|
||||||
}
|
}
|
||||||
rtp_session->send_msg.header.pt = rtp_session->payload;
|
|
||||||
switch_socket_sendto(rtp_session->sock, rtp_session->remote_addr, 0, (void*)&rtp_session->send_msg, &bytes);
|
|
||||||
|
|
||||||
|
switch_socket_sendto(rtp_session->sock, rtp_session->remote_addr, 0, (void*)send_msg, &bytes);
|
||||||
|
|
||||||
if (rtp_session->ice_user) {
|
if (rtp_session->ice_user) {
|
||||||
if (ice_out(rtp_session) != SWITCH_STATUS_SUCCESS) {
|
if (ice_out(rtp_session) != SWITCH_STATUS_SUCCESS) {
|
||||||
return -1;
|
return -1;
|
||||||
@ -648,7 +683,7 @@ static int rtp_common_write(switch_rtp *rtp_session, void *data, uint32_t datale
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint32_t ts)
|
SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32_t datalen, uint32_t ts, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO) || !rtp_session->remote_addr) {
|
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO) || !rtp_session->remote_addr) {
|
||||||
@ -661,11 +696,11 @@ SWITCH_DECLARE(int) switch_rtp_write(switch_rtp *rtp_session, void *data, uint32
|
|||||||
rtp_session->send_msg.header.seq = rtp_session->seq;
|
rtp_session->send_msg.header.seq = rtp_session->seq;
|
||||||
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
|
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
|
||||||
|
|
||||||
return rtp_common_write(rtp_session, data, datalen, rtp_session->payload);
|
return rtp_common_write(rtp_session, data, datalen, rtp_session->payload, flags);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(int) switch_rtp_write_payload(switch_rtp *rtp_session, void *data, uint16_t datalen, uint8_t payload, uint32_t ts, uint16_t mseq)
|
SWITCH_DECLARE(int) switch_rtp_write_payload(switch_rtp *rtp_session, void *data, uint16_t datalen, uint8_t payload, uint32_t ts, uint16_t mseq, switch_frame_flag *flags)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO) || !rtp_session->remote_addr) {
|
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_IO) || !rtp_session->remote_addr) {
|
||||||
@ -676,7 +711,7 @@ SWITCH_DECLARE(int) switch_rtp_write_payload(switch_rtp *rtp_session, void *data
|
|||||||
rtp_session->send_msg.header.seq = htons(mseq);
|
rtp_session->send_msg.header.seq = htons(mseq);
|
||||||
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
|
rtp_session->send_msg.header.ts = htonl(rtp_session->ts);
|
||||||
|
|
||||||
return rtp_common_write(rtp_session, data, datalen, payload);
|
return rtp_common_write(rtp_session, data, datalen, payload, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
SWITCH_DECLARE(uint32_t) switch_rtp_get_ssrc(switch_rtp *rtp_session)
|
SWITCH_DECLARE(uint32_t) switch_rtp_get_ssrc(switch_rtp *rtp_session)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user