Begin adding support for GNU autotools

This commit is contained in:
bossiel 2012-11-22 00:09:46 +00:00
parent 986fe7b32c
commit bc329c5649
20 changed files with 1120 additions and 291 deletions

View File

@ -0,0 +1,16 @@
AUTOMAKE_OPTIONS = foreign dist-tarZ
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = tinySAK \
tinyNET \
tinyHTTP \
tinyXCAP \
tinyIPSec \
tinySMS \
tinySIGCOMP \
tinySDP \
tinyRTP \
tinyMSRP \
tinyMEDIA \
tinyDAV \
tinySIP

View File

@ -0,0 +1,17 @@
echo libtoolize
libtoolize --copy --force
echo "aclocal"
aclocal
echo "autoheader"
autoheader
echo "create NEWS, README, AUTHORS and ChangeLog"
touch NEWS README AUTHORS ChangeLog
echo "autoreconf"
autoreconf -i
echo "automake"
automake -a

View File

@ -0,0 +1,113 @@
AC_PREREQ([2.0])
AC_INIT(libdoubango, 0.1, diopmamadou(at)doubango(DOT)org)
AM_INIT_AUTOMAKE
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([tinySAK/src/tsk.c])
dnl find suitable C and C++ compilers
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_LIBTOOL
AC_LIBTOOL_WIN32_DLL
AC_PROG_SED
AC_PROG_MAKE_SET
## Are we using Windows?
#dnl detecting WIN32
#case "$host" in
# *cygwin* | *mingw*)
# AC_DEFINE([WIN32], [], "Using Windows as target os.")
# ;;
# *)
# AC_MSG_RESULT(${host} is not Windows... I will do my best.)
# ;;
#esac
# CFLAGS
CFLAGS="${CFLAGS=}"
#echo Setting up build environment for ${target_cpu}${target_os}
### ENABLE-DEBUG
AC_MSG_CHECKING(whether to enable debugging)
debug_default="yes"
AC_ARG_ENABLE(debug,
[ --enable-debug[=no/yes] turn on/off debugging
[[default=$debug_default]]],
[ if test "x$enableval" = "xyes" ; then
CFLAGS="$CFLAGS -O0 -g3 -DDEBUG"
AC_MSG_RESULT(yes)
else
CFLAGS="$CFLAGS -O3 -NDEBUG"
AC_MSG_RESULT(no)
fi
],
[CFLAGS="$CFLAGS -O0 -g3 -DDEBUG"
AC_MSG_RESULT(yes)])
### DEBUG-LEVEL
AC_ARG_WITH(debug-level,
[ --with-debug-level[=level] Set debug-level to level [[default=info]]
info: informational
warn: warnings
error [default]: errors
fatal: fatal],
[ if test "x$withval" = "xinfo" ; then
AC_DEFINE(DEBUG_LEVEL, DEBUG_LEVEL_INFO, [info debug])
AC_MSG_RESULT(info)
elif test "x$withval" = "xwarn" ; then
AC_DEFINE(DEBUG_LEVEL, DEBUG_LEVEL_INFO, [warn debug])
AC_MSG_RESULT(warn)
elif test "x$withval" = "xerror" ; then
AC_DEFINE(DEBUG_LEVEL, DEBUG_LEVEL_ERROR, [error debug])
AC_MSG_RESULT(error)
elif test "x$withval" = "xfatal" ; then
AC_DEFINE(DEBUG_LEVEL, DEBUG_LEVEL_FATAL, [fatal debug])
AC_MSG_RESULT(fatal)
fi
])
## checks string functions
AC_CHECK_FUNCS([stricmp strnicmp])
AH_TEMPLATE([HAVE_DNS_H], [Define if <dns.h> header exist])
AC_CHECK_HEADER([dns.h], AC_DEFINE(HAVE_DNS_H, 1), AC_DEFINE(HAVE_DNS_H, 0), [])
AH_TEMPLATE([TNET_HAVE_SS_LEN], [Define if sockaddr_storage.ss_len exists])
AC_CHECK_MEMBER([struct sockaddr_storage.ss_len], AC_DEFINE(TNET_HAVE_SS_LEN, 1), AC_DEFINE(TNET_HAVE_SS_LEN,0), [#include <sys/socket.h>])
AH_TEMPLATE([TNET_HAVE_SA_LEN], [Define if sockaddr.sa_len exists])
AC_CHECK_MEMBER([struct sockaddr.sa_len], AC_DEFINE(TNET_HAVE_SA_LEN, 1), AC_DEFINE(TNET_HAVE_SA_LEN, 0), [#include <netinet/in.h>])
AM_CONDITIONAL(USE_LIBSRTP, false)
AC_ARG_WITH(libsrtp,
[ --with-libsrtp Link against libsrtp library],
[AC_DEFINE_UNQUOTED(USE_LIBSRTP, , USE_LIBSRTP)
AC_SUBST(LIBSRTP_LIBADD, "-lsrtp")
AM_CONDITIONAL(USE_LIBSRTP, true)],
[ AC_SUBST(LIBSRTP_LIBADD, "")])
AC_OUTPUT(
Makefile
tinySAK/Makefile
tinyNET/Makefile
tinyHTTP/Makefile
tinyXCAP/Makefile
tinyIPSec/Makefile
tinySMS/Makefile
tinySIGCOMP/Makefile
tinySDP/Makefile
tinyRTP/Makefile
tinyMSRP/Makefile
tinyMEDIA/Makefile
tinyDAV/Makefile
tinySIP/Makefile
)

View File

@ -0,0 +1,99 @@
lib_LTLIBRARIES = libtinyDAV.la
libtinyDAV_la_LIBADD = \
../tinySAK/libtinySAK.la\
../tinyNET/libtinyNET.la\
../tinySDP/libtinySDP.la\
../tinyRTP/libtinyRTP.la\
../tinyMEDIA/libtinyMEDIA.la\
../tinyMSRP/libtinyMSRP.la
libtinyDAV_la_CPPFLAGS = -I../tinySAK/src\
-I../tinyNET/src\
-I../tinySDP/include\
-I../tinyRTP/include\
-I../tinyMEDIA/include\
-I../tinyMSRP/include\
-Iinclude
libtinyDAV_la_SOURCES = \
src/tdav.c \
src/tdav_session_av.c
libtinyDAV_la_SOURCES += src/audio/tdav_consumer_audio.c \
src/audio/tdav_speakup_jitterbuffer.c \
src/audio/tdav_jitterbuffer.c \
src/audio/tdav_producer_audio.c \
src/audio/tdav_session_audio.c \
src/audio/tdav_speex_denoise.c \
src/audio/tdav_speex_jitterbuffer.c \
src/audio/tdav_speex_resampler.c \
src/audio/tdav_webrtc_denoise.c
libtinyDAV_la_SOURCES += src/video/tdav_consumer_video.c \
src/video/tdav_converter_video.cxx \
src/video/tdav_runnable_video.c \
src/video/tdav_session_video.c \
src/video/jb/tdav_video_frame.c \
src/video/jb/tdav_video_jb.c
libtinyDAV_la_SOURCES += src/t140/tdav_consumer_t140.c \
src/t140/tdav_producer_t140.c \
src/t140/tdav_session_t140.c
libtinyDAV_la_SOURCES += src/msrp/tdav_consumer_msrp.c \
src/msrp/tdav_producer_msrp.c \
src/msrp/tdav_session_msrp.c
libtinyDAV_la_SOURCES += src/codecs/amr/tdav_codec_amr.c
libtinyDAV_la_SOURCES += src/codecs/g711/g711.c \
src/codecs/g711/tdav_codec_g711.c
libtinyDAV_la_SOURCES += src/codecs/g722/g722_decode.c \
src/codecs/g722/g722_encode.c \
src/codecs/g722/tdav_codec_g722.c
libtinyDAV_la_SOURCES += src/codecs/g729/tdav_codec_g729.c
libtinyDAV_la_SOURCES += src/codecs/gsm/tdav_codec_gsm.c
libtinyDAV_la_SOURCES += src/codecs/bv/tdav_codec_bv16.c \
src/codecs/bv/tdav_codec_bv32.c
libtinyDAV_la_SOURCES += src/codecs/ilbc/tdav_codec_ilbc.c
libtinyDAV_la_SOURCES += src/codecs/speex/tdav_codec_speex.c
libtinyDAV_la_SOURCES += src/codecs/dtmf/tdav_codec_dtmf.c
libtinyDAV_la_SOURCES += src/codecs/fec/tdav_codec_red.c \
src/codecs/fec/tdav_codec_ulpfec.c
libtinyDAV_la_SOURCES += src/codecs/h261/tdav_codec_h261.c
libtinyDAV_la_SOURCES += src/codecs/h263/tdav_codec_h263.c
libtinyDAV_la_SOURCES += src/codecs/h264/tdav_codec_h264.c \
src/codecs/h264/tdav_codec_h264_rtp.c
libtinyDAV_la_SOURCES += src/codecs/theora/tdav_codec_theora.c
libtinyDAV_la_SOURCES += src/codecs/vpx/tdav_codec_vp8.c
libtinyDAV_la_SOURCES += src/codecs/mp4ves/tdav_codec_mp4ves.c
libtinyDAV_la_SOURCES += src/codecs/msrp/tdav_codec_msrp.c
libtinyDAV_la_SOURCES += src/codecs/t140/tdav_codec_t140.c
libtinyDAV_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinydav
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinydav/tinydav
__include_HEADERS = include/tinydav/*.h
audio_includedir = $(includedir)/tinydav/tinydav/audio
audio_include_HEADERS = include/tinydav/audio/*.h
video_includedir = $(includedir)/tinydav/tinydav/video
video_include_HEADERS = include/tinydav/video/*.h

View File

@ -0,0 +1,17 @@
lib_LTLIBRARIES = libtinyIPSec.la
libtinyIPSec_la_LIBADD = ../tinySAK/libtinySAK.la
libtinyIPSec_la_CPPFLAGS = -I../tinySAK/src -Isrc
libtinyIPSec_la_SOURCES = \
src/tipsec.c\
src/tipsec_common.c\
src/tipsec_racoon.c\
src/tipsec_vista.c\
src/tipsec_xp.c
# LDFLAGS
libtinyIPSec_la_LDFLAGS = $LDFLAGS -no-undefined
# Headers file to install
libtinyIPSec_la_HEADERS = src/*.h
libtinyIPSec_ladir = $(includedir)/tinyipsec

View File

@ -0,0 +1,37 @@
lib_LTLIBRARIES = libtinyMEDIA.la
libtinyMEDIA_la_LIBADD = ../tinySAK/libtinySAK.la ../tinyNET/libtinyNET.la ../tinySDP/libtinySDP.la
libtinyMEDIA_la_CPPFLAGS = -Iinclude -I../tinySAK/src -I../tinyNET/src -I../tinySDP/include
libtinyMEDIA_la_SOURCES = \
src/tmedia.c \
src/tmedia_codec.c \
src/tmedia_codec_dummy.c \
src/tmedia_common.c \
src/tmedia_consumer.c \
src/tmedia_converter_video.c \
src/tmedia_defaults.c \
src/tmedia_denoise.c \
src/tmedia_imageattr.c \
src/tmedia_jitterbuffer.c \
src/tmedia_params.c \
src/tmedia_producer.c \
src/tmedia_qos.c \
src/tmedia_resampler.c \
src/tmedia_session.c \
src/tmedia_session_dummy.c \
src/tmedia_session_ghost.c
libtinyMEDIA_la_SOURCES += \
src/content/tmedia_content.c \
src/content/tmedia_content_cpim.c \
src/content/tmedia_content_multipart.c \
src/content/tmedia_content_sip_frag.c
libtinyMEDIA_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinymedia
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinymedia/tinymedia
__include_HEADERS = include/tinymedia/*.h
content_includedir = $(includedir)/tinymedia/tinymedia/content
content_include_HEADERS = include/tinymedia/content/*.h

View File

@ -0,0 +1,48 @@
lib_LTLIBRARIES = libtinyMSRP.la
libtinyMSRP_la_LIBADD = ../tinySAK/libtinySAK.la ../tinyNET/libtinyNET.la ../tinyHTTP/libtinyHTTP.la ../tinySDP/libtinySDP.la
libtinyMSRP_la_CPPFLAGS = -Iinclude -I../tinySAK/src -I../tinyNET/src -I../tinyHTTP/include -I../tinySDP/include
libtinyMSRP_la_SOURCES = \
src/tmsrp.c\
src/tmsrp_event.c\
src/tmsrp_message.c\
src/tmsrp_uri.c
libtinyMSRP_la_SOURCES += src/headers/tmsrp_header.c\
src/headers/tmsrp_header_Authentication-Info.c\
src/headers/tmsrp_header_Authorization.c\
src/headers/tmsrp_header_Byte-Range.c\
src/headers/tmsrp_header_Content-Type.c\
src/headers/tmsrp_header_Dummy.c\
src/headers/tmsrp_header_Expires.c\
src/headers/tmsrp_header_Failure-Report.c\
src/headers/tmsrp_header_From-Path.c\
src/headers/tmsrp_header_Max-Expires.c\
src/headers/tmsrp_header_Message-ID.c\
src/headers/tmsrp_header_Min-Expires.c\
src/headers/tmsrp_header_Status.c\
src/headers/tmsrp_header_Success-Report.c\
src/headers/tmsrp_header_To-Path.c\
src/headers/tmsrp_header_Use-Path.c\
src/headers/tmsrp_header_WWW-Authenticate.o
libtinyMSRP_la_SOURCES += src/parsers/tmsrp_parser_message.c\
src/parsers/tmsrp_parser_uri.c
libtinyMSRP_la_SOURCES += src/session/tmsrp_config.c\
src/session/tmsrp_data.c \
src/session/tmsrp_receiver.c \
src/session/tmsrp_sender.c
libtinyMSRP_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinymsrp
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinymsrp/tinymsrp
__include_HEADERS = include/tinymsrp/*.h
headers_includedir = $(includedir)/tinymsrp/tinymsrp/headers
headers_include_HEADERS = include/tinymsrp/headers/*.h
parsers_includedir = $(includedir)/tinymsrp/tinymsrp/parsers
parsers_include_HEADERS = include/tinymsrp/parsers/*.h
session_includedir = $(includedir)/tinymsrp/tinymsrp/session
session_include_HEADERS = include/tinymsrp/session/*.h

View File

@ -1,3 +1,77 @@
SUBDIRS = \
src \
test
lib_LTLIBRARIES = libtinyNET.la
libtinyNET_la_LIBADD = ../tinySAK/libtinySAK.la
libtinyNET_la_CPPFLAGS = -I../tinySAK/src -I./src
libtinyNET_la_SOURCES = \
src/tnet.c\
src/tnet_auth.c\
src/tnet_endianness.c\
src/tnet_nat.c\
src/tnet_poll.c\
src/tnet_socket.c\
src/tnet_transport.c\
src/tnet_transport_poll.c\
src/tnet_utils.c
libtinyNET_la_SOURCES += src/dhcp/tnet_dhcp.c\
src/dhcp/tnet_dhcp_message.c\
src/dhcp/tnet_dhcp_option.c\
src/dhcp/tnet_dhcp_option_sip.c
libtinyNET_la_SOURCES += src/dhcp6/tnet_dhcp6.c\
src/dhcp6/tnet_dhcp6_duid.c\
src/dhcp6/tnet_dhcp6_message.c\
src/dhcp6/tnet_dhcp6_option.c
libtinyNET_la_SOURCES += src/dns/tnet_dns.c\
src/dns/tnet_dns_a.c\
src/dns/tnet_dns_aaaa.c\
src/dns/tnet_dns_cname.c\
src/dns/tnet_dns_message.c\
src/dns/tnet_dns_mx.c\
src/dns/tnet_dns_naptr.c\
src/dns/tnet_dns_ns.c\
src/dns/tnet_dns_opt.c\
src/dns/tnet_dns_ptr.c\
src/dns/tnet_dns_regexp.c\
src/dns/tnet_dns_resolvconf.c\
src/dns/tnet_dns_rr.c\
src/dns/tnet_dns_soa.c\
src/dns/tnet_dns_srv.c\
src/dns/tnet_dns_txt.c
libtinyNET_la_SOURCES += src/ice/tnet_ice_candidate.c\
src/ice/tnet_ice_ctx.c\
src/ice/tnet_ice_event.c\
src/ice/tnet_ice_pair.c\
src/ice/tnet_ice_utils.c
libtinyNET_la_SOURCES += src/stun/tnet_stun.c\
src/stun/tnet_stun_attribute.c\
src/stun/tnet_stun_message.c
libtinyNET_la_SOURCES += src/tls/tnet_tls.c
libtinyNET_la_SOURCES += src/turn/tnet_turn.c\
src/turn/tnet_turn_attribute.c\
src/turn/tnet_turn_message.c
libtinyNET_la_LDFLAGS = $LDFLAGS -no-undefined
src_includedir = $(includedir)/tinynet
src_include_HEADERS = src/*.h
dhcp_includedir = $(includedir)/tinynet/dhcp
dhcp_include_HEADERS = src/dhcp/*.h
dhcp6_includedir = $(includedir)/tinynet/dhcp6
dhcp6_include_HEADERS = src/dhcp6/*.h
dns_includedir = $(includedir)/tinynet/dns
dns_include_HEADERS = src/dns/*.h
ice_includedir = $(includedir)/tinynet/ice
ice_include_HEADERS = src/ice/*.h
stun_includedir = $(includedir)/tinynet/stun
stun_include_HEADERS = src/stun/*.h
tls_includedir = $(includedir)/tinynet/tls
tls_include_HEADERS = src/tls/*.h
turn_includedir = $(includedir)/tinynet/turn
turn_include_HEADERS = src/turn/*.h

View File

@ -1,8 +0,0 @@
#ifndef TINYNET_CONFIG_H
#define TINYNET_CONFIG_H
#if defined (__APPLE__)
# define TNET_USE_POLL 1
#endif
#endif /* TINYNET_CONFIG_H */

View File

@ -127,8 +127,8 @@
#include <stdint.h>
#ifdef HAVE_CONFIG_H
# include "../config.h"
#if HAVE_CONFIG_H
# include "config.h"
#endif
#endif /* _TINYNET_H_ */

View File

@ -42,7 +42,6 @@
#include <string.h>
#if defined(__APPLE__)
# include <net/if_dl.h>
# if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_2
# include "net/route.h"
# else
@ -50,6 +49,19 @@
# endif
#endif
#ifdef AF_LINK
# include <net/if_dl.h>
# include <net/if_types.h>
#endif
#ifdef AF_PACKET
# include <netpacket/packet.h>
#endif
#ifndef AF_LINK
# define AF_LINK AF_PACKET
#endif
/**@defgroup tnet_utils_group Network utility functions.
*/
@ -204,7 +216,7 @@ tnet_interfaces_L_t* tnet_get_interfaces()
continue;
}
#if defined(__linux__)
#if defined(__linux__) && 0 /* FIXME */
{
struct ifreq ifr;
tnet_fd_t fd = TNET_INVALID_FD;
@ -517,15 +529,15 @@ bail:
goto done;
}
if (!(ifr = (struct ifreq*) malloc(ifc.ifc_len))) {
TSK_DEBUG_ERROR("Could not malloc ifreq with size =%d", ifc.ifc_len);
goto done;
if (!(ifr = (struct ifreq*) malloc(ifc.ifc_len))) {
TSK_DEBUG_ERROR("Could not malloc ifreq with size =%d", ifc.ifc_len);
goto done;
}
ifc.ifc_ifcu.ifcu_req = ifr;
if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {
TSK_DEBUG_ERROR("ioctl SIOCGIFCONF failed");
goto done;
ifc.ifc_ifcu.ifcu_req = ifr;
if (ioctl(fd, SIOCGIFCONF, &ifc) < 0) {
TSK_DEBUG_ERROR("ioctl SIOCGIFCONF failed");
goto done;
}
int i;
@ -1362,12 +1374,7 @@ int tnet_sockfd_recvfrom(tnet_fd_t fd, void* buf, tsk_size_t size, int flags, st
return -1;
}
#if TNET_HAVE_SA_LEN
fromlen = from->sa_len;
#else
fromlen = sizeof(*from);
#endif
fromlen = tnet_get_sockaddr_size(from);
return recvfrom(fd, buf, size, flags, from, &fromlen);
}

View File

@ -0,0 +1,43 @@
lib_LTLIBRARIES = libtinyRTP.la
libtinyRTP_la_LIBADD = ../tinySAK/libtinySAK.la ../tinyNET/libtinyNET.la
libtinyRTP_la_CPPFLAGS = -I../tinySAK/src -I../tinyNET/src -Iinclude
if USE_LIBSRTP
libtinyRTP_la_LIBADD += ${LIBSRTP_LIBADD}
libtinyRTP_la_CPPFLAGS += -DHAVE_SRTP=1
endif
libtinyRTP_la_SOURCES = \
src/trtp.c \
src/trtp_manager.c \
src/trtp_srtp.c
libtinyRTP_la_SOURCES += src/rtcp/trtp_rtcp_header.c \
src/rtcp/trtp_rtcp_packet.c \
src/rtcp/trtp_rtcp_rblock.c \
src/rtcp/trtp_rtcp_report.c \
src/rtcp/trtp_rtcp_report_bye.c \
src/rtcp/trtp_rtcp_report_fb.c \
src/rtcp/trtp_rtcp_report_rr.c \
src/rtcp/trtp_rtcp_report_sdes.c \
src/rtcp/trtp_rtcp_report_sr.c \
src/rtcp/trtp_rtcp_report_xr.c \
src/rtcp/trtp_rtcp_sdes_chunck.c \
src/rtcp/trtp_rtcp_sdes_item.c \
src/rtcp/trtp_rtcp_session.c
libtinyRTP_la_SOURCES += src/rtp/trtp_rtp_header.c \
src/rtp/trtp_rtp_packet.c \
src/rtp/trtp_rtp_session.c
libtinyRTP_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinyrtp
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinyrtp/tinyrtp
__include_HEADERS = include/tinyrtp/*.h
rtcp_includedir = $(includedir)/tinyrtp/tinyrtp/rtcp
rtcp_include_HEADERS = include/tinyrtp/rtcp/*.h
rtp_includedir = $(includedir)/tinyrtp/tinyrtp/rtp
rtp_include_HEADERS = include/tinyrtp/rtp/*.h

View File

@ -1,248 +1,248 @@
/*
* Copyright (C) 2012 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango(dot)org>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file trtp_srtp.h
*
* @author Mamadou Diop <diopmamadou(at)doubango(dot)org>
*/
#include "tinyrtp/trtp_srtp.h"
#include "tinyrtp/trtp_manager.h"
#if HAVE_SRTP
int trtp_srtp_ctx_init(trtp_srtp_ctx_xt* ctx, int32_t tag, trtp_srtp_crypto_type_t type, uint32_t ssrc){
char* key_str = ctx->key_str;
err_status_t srtp_err;
tsk_size_t size;
if(!ctx){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
if(ctx->initialized){
trtp_srtp_ctx_deinit(ctx);
}
ctx->tag = tag;
ctx->crypto_type = type;
if((srtp_err = crypto_get_random((unsigned char*)ctx->key_bin, sizeof(ctx->key_bin))) != err_status_ok){
TSK_DEBUG_ERROR("crypto_get_random() failed");
return -2;
}
size = tsk_base64_encode((const uint8_t*)ctx->key_bin, sizeof(ctx->key_bin), &key_str);
key_str[size] = '\0';
switch(ctx->crypto_type){
case HMAC_SHA1_80:
{
crypto_policy_set_aes_cm_128_hmac_sha1_80(&ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_80(&ctx->policy.rtcp);
break;
}
case HMAC_SHA1_32:
default:
{
crypto_policy_set_aes_cm_128_hmac_sha1_32(&ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_32(&ctx->policy.rtcp);
break;
}
}
ctx->policy.key = (unsigned char*)ctx->key_bin;
ctx->policy.ssrc.type = ssrc_any_outbound;
ctx->policy.ssrc.value = ssrc;
if((srtp_err = srtp_create(&ctx->session, &ctx->policy)) != err_status_ok){
TSK_DEBUG_ERROR("srtp_create() failed");
return -3;
}
ctx->initialized = tsk_true;
return 0;
}
int trtp_srtp_ctx_deinit(trtp_srtp_ctx_xt* ctx){
if(!ctx){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
if(ctx->initialized){
/*err_status_t srtp_err =*/ srtp_dealloc(ctx->session);
ctx->initialized = tsk_false;
}
return 0;
}
int trtp_srtp_match_line(const char* crypto_line, int32_t* tag, int32_t* crypto_type, char* key, tsk_size_t key_size)
{
char* v = strtok((char*)crypto_line, " :|;");
int32_t k = 0;
while(v){
switch(k){
case 0:
{
if(tag){
*tag = atoi(v);
}
break;
}
case 1:
{
if(tsk_striequals(v, TRTP_SRTP_AES_CM_128_HMAC_SHA1_80)){
if(crypto_type){
*crypto_type = HMAC_SHA1_80;
}
}
else if(tsk_striequals(v, TRTP_SRTP_AES_CM_128_HMAC_SHA1_32)){
if(crypto_type){
*crypto_type = HMAC_SHA1_32;
}
}
else {
return -0xFF;
}
break;
}
case 2:
{
if(!tsk_striequals(v, "inline")){
return -0xFF;
}
break;
}
case 3:
{
if(key && key_size){
memset(key, 0, key_size);
memcpy(key, v, TSK_MIN(key_size, tsk_strlen(v)));
}
return 0;
}
}
++k;
v = strtok(tsk_null, " :|;");
}
return -0xF0;
}
int trtp_srtp_get_ctx_local(trtp_manager_t* rtp_mgr, const trtp_srtp_ctx_xt** ctx, tsk_size_t *count)
{
trtp_srtp_ctx_xt* ctx_local;
const trtp_srtp_ctx_xt* ctx_remote;
if(!rtp_mgr || !ctx || !count){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
*count = 0;
*ctx = tsk_null;
ctx_remote = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0];
ctx_local = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][0];
if(ctx_remote->initialized){
int index = -1;
if(ctx_local[0].crypto_type == ctx_remote->crypto_type){
index = 0;
}
else if(ctx_local[1].crypto_type == ctx_remote->crypto_type){
index = 1;
}
if(index != -1){
*count = 1;
*ctx = &ctx_local[index];
ctx_local[index].tag = ctx_remote->tag;
}
}
else{
*count = 2;
*ctx = &ctx_local[0];
}
return 0;
}
int trtp_srtp_set_remote(trtp_manager_t* rtp_mgr, const char* crypto_line)
{
//e.g. 2 F8_128_HMAC_SHA1_80 inline:MTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5QUJjZGVm|2^20|1:4;inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2^20|2:4"
/*tsk_bool_t matched = tsk_false;*/
trtp_srtp_ctx_xt* srtp_ctx = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0];
int ret;
uint8_t *key_bin;
err_status_t srtp_err;
ret = trtp_srtp_ctx_deinit(srtp_ctx);
ret = trtp_srtp_match_line(crypto_line, &srtp_ctx->tag, (int32_t*)&srtp_ctx->crypto_type, srtp_ctx->key_str, (sizeof(srtp_ctx->key_str) - 1));
if(ret != 0){
return ret;
}
switch(srtp_ctx->crypto_type){
case HMAC_SHA1_80:
{
crypto_policy_set_aes_cm_128_hmac_sha1_80(&srtp_ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_80(&srtp_ctx->policy.rtcp);
break;
}
case HMAC_SHA1_32:
default:
{
crypto_policy_set_aes_cm_128_hmac_sha1_32(&srtp_ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_32(&srtp_ctx->policy.rtcp);
break;
}
}
key_bin = (unsigned char*)srtp_ctx->key_bin;
tsk_base64_decode((const uint8_t*)srtp_ctx->key_str, tsk_strlen(srtp_ctx->key_str), (char**)&key_bin);
srtp_ctx->policy.key = key_bin;
srtp_ctx->policy.ssrc.type = ssrc_any_inbound;
if((srtp_err = srtp_create(&srtp_ctx->session, &srtp_ctx->policy)) != err_status_ok){
TSK_DEBUG_ERROR("srtp_create() failed");
return -3;
}
srtp_ctx->initialized = tsk_true;
return 0;
}
tsk_bool_t trtp_srtp_is_initialized(trtp_manager_t* rtp_mgr)
{
if(!rtp_mgr){
return tsk_false;
}
return ((rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][0].initialized || rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][1].initialized)
&& rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0].initialized);
}
tsk_bool_t trtp_srtp_is_active(trtp_manager_t* rtp_mgr)
{
if(!rtp_mgr){
TSK_DEBUG_ERROR("Invalid argument");
return tsk_false;
}
return (rtp_mgr ->srtp_ctx_neg_remote && rtp_mgr ->srtp_ctx_neg_local);
}
/*
* Copyright (C) 2012 Mamadou Diop.
*
* Contact: Mamadou Diop <diopmamadou(at)doubango(dot)org>
*
* This file is part of Open Source Doubango Framework.
*
* DOUBANGO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* DOUBANGO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with DOUBANGO.
*
*/
/**@file trtp_srtp.h
*
* @author Mamadou Diop <diopmamadou(at)doubango(dot)org>
*/
#include "tinyrtp/trtp_srtp.h"
#include "tinyrtp/trtp_manager.h"
#if HAVE_SRTP
int trtp_srtp_ctx_init(trtp_srtp_ctx_xt* ctx, int32_t tag, trtp_srtp_crypto_type_t type, uint32_t ssrc){
char* key_str = ctx->key_str;
err_status_t srtp_err;
tsk_size_t size;
if(!ctx){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
if(ctx->initialized){
trtp_srtp_ctx_deinit(ctx);
}
ctx->tag = tag;
ctx->crypto_type = type;
if((srtp_err = crypto_get_random((unsigned char*)ctx->key_bin, sizeof(ctx->key_bin))) != err_status_ok){
TSK_DEBUG_ERROR("crypto_get_random() failed");
return -2;
}
size = tsk_base64_encode((const uint8_t*)ctx->key_bin, sizeof(ctx->key_bin), &key_str);
key_str[size] = '\0';
switch(ctx->crypto_type){
case HMAC_SHA1_80:
{
crypto_policy_set_aes_cm_128_hmac_sha1_80(&ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_80(&ctx->policy.rtcp);
break;
}
case HMAC_SHA1_32:
default:
{
crypto_policy_set_aes_cm_128_hmac_sha1_32(&ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_32(&ctx->policy.rtcp);
break;
}
}
ctx->policy.key = (unsigned char*)ctx->key_bin;
ctx->policy.ssrc.type = ssrc_any_outbound;
ctx->policy.ssrc.value = ssrc;
if((srtp_err = srtp_create(&ctx->session, &ctx->policy)) != err_status_ok){
TSK_DEBUG_ERROR("srtp_create() failed");
return -3;
}
ctx->initialized = tsk_true;
return 0;
}
int trtp_srtp_ctx_deinit(trtp_srtp_ctx_xt* ctx){
if(!ctx){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
if(ctx->initialized){
/*err_status_t srtp_err =*/ srtp_dealloc(ctx->session);
ctx->initialized = tsk_false;
}
return 0;
}
int trtp_srtp_match_line(const char* crypto_line, int32_t* tag, int32_t* crypto_type, char* key, tsk_size_t key_size)
{
char* v = strtok((char*)crypto_line, " :|;");
int32_t k = 0;
while(v){
switch(k){
case 0:
{
if(tag){
*tag = atoi(v);
}
break;
}
case 1:
{
if(tsk_striequals(v, TRTP_SRTP_AES_CM_128_HMAC_SHA1_80)){
if(crypto_type){
*crypto_type = HMAC_SHA1_80;
}
}
else if(tsk_striequals(v, TRTP_SRTP_AES_CM_128_HMAC_SHA1_32)){
if(crypto_type){
*crypto_type = HMAC_SHA1_32;
}
}
else {
return -0xFF;
}
break;
}
case 2:
{
if(!tsk_striequals(v, "inline")){
return -0xFF;
}
break;
}
case 3:
{
if(key && key_size){
memset(key, 0, key_size);
memcpy(key, v, TSK_MIN(key_size, tsk_strlen(v)));
}
return 0;
}
}
++k;
v = strtok(tsk_null, " :|;");
}
return -0xF0;
}
int trtp_srtp_get_ctx_local(trtp_manager_t* rtp_mgr, const trtp_srtp_ctx_xt** ctx, tsk_size_t *count)
{
trtp_srtp_ctx_xt* ctx_local;
const trtp_srtp_ctx_xt* ctx_remote;
if(!rtp_mgr || !ctx || !count){
TSK_DEBUG_ERROR("Invalid parameter");
return -1;
}
*count = 0;
*ctx = tsk_null;
ctx_remote = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0];
ctx_local = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][0];
if(ctx_remote->initialized){
int index = -1;
if(ctx_local[0].crypto_type == ctx_remote->crypto_type){
index = 0;
}
else if(ctx_local[1].crypto_type == ctx_remote->crypto_type){
index = 1;
}
if(index != -1){
*count = 1;
*ctx = &ctx_local[index];
ctx_local[index].tag = ctx_remote->tag;
}
}
else{
*count = 2;
*ctx = &ctx_local[0];
}
return 0;
}
int trtp_srtp_set_remote(trtp_manager_t* rtp_mgr, const char* crypto_line)
{
//e.g. 2 F8_128_HMAC_SHA1_80 inline:MTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5QUJjZGVm|2^20|1:4;inline:QUJjZGVmMTIzNDU2Nzg5QUJDREUwMTIzNDU2Nzg5|2^20|2:4"
/*tsk_bool_t matched = tsk_false;*/
trtp_srtp_ctx_xt* srtp_ctx = &rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0];
int ret;
uint8_t *key_bin;
err_status_t srtp_err;
ret = trtp_srtp_ctx_deinit(srtp_ctx);
ret = trtp_srtp_match_line(crypto_line, &srtp_ctx->tag, (int32_t*)&srtp_ctx->crypto_type, srtp_ctx->key_str, (sizeof(srtp_ctx->key_str) - 1));
if(ret != 0){
return ret;
}
switch(srtp_ctx->crypto_type){
case HMAC_SHA1_80:
{
crypto_policy_set_aes_cm_128_hmac_sha1_80(&srtp_ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_80(&srtp_ctx->policy.rtcp);
break;
}
case HMAC_SHA1_32:
default:
{
crypto_policy_set_aes_cm_128_hmac_sha1_32(&srtp_ctx->policy.rtp);
crypto_policy_set_aes_cm_128_hmac_sha1_32(&srtp_ctx->policy.rtcp);
break;
}
}
key_bin = (unsigned char*)srtp_ctx->key_bin;
tsk_base64_decode((const uint8_t*)srtp_ctx->key_str, tsk_strlen(srtp_ctx->key_str), (char**)&key_bin);
srtp_ctx->policy.key = key_bin;
srtp_ctx->policy.ssrc.type = ssrc_any_inbound;
if((srtp_err = srtp_create(&srtp_ctx->session, &srtp_ctx->policy)) != err_status_ok){
TSK_DEBUG_ERROR("srtp_create() failed");
return -3;
}
srtp_ctx->initialized = tsk_true;
return 0;
}
tsk_bool_t trtp_srtp_is_initialized(trtp_manager_t* rtp_mgr)
{
if(!rtp_mgr){
return tsk_false;
}
return ((rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][0].initialized || rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_LOCAL][1].initialized)
&& rtp_mgr->srtp_contexts[TRTP_SRTP_LINE_IDX_REMOTE][0].initialized);
}
tsk_bool_t trtp_srtp_is_active(trtp_manager_t* rtp_mgr)
{
if(!rtp_mgr){
TSK_DEBUG_ERROR("Invalid argument");
return tsk_false;
}
return (rtp_mgr ->srtp_ctx_neg_remote && rtp_mgr ->srtp_ctx_neg_local);
}
#endif /* HAVE_SRTP */

View File

@ -1,3 +1,37 @@
SUBDIRS = \
src \
test
lib_LTLIBRARIES = libtinySAK.la
libtinySAK_la_SOURCES = \
src/tsk.c\
src/tsk_base64.c\
src/tsk_binaryutils.c\
src/tsk_buffer.c\
src/tsk_condwait.c\
src/tsk_debug.c\
src/tsk_fsm.c\
src/tsk_hmac.c\
src/tsk_list.c\
src/tsk_md5.c\
src/tsk_memory.c\
src/tsk_mutex.c\
src/tsk_object.c\
src/tsk_options.c\
src/tsk_params.c\
src/tsk_plugin.c\
src/tsk_ppfcs16.c\
src/tsk_ppfcs32.c\
src/tsk_ragel_state.c\
src/tsk_runnable.c\
src/tsk_safeobj.c\
src/tsk_semaphore.c\
src/tsk_sha1.c\
src/tsk_string.c\
src/tsk_thread.c\
src/tsk_time.c\
src/tsk_timer.c\
src/tsk_url.c\
src/tsk_uuid.c\
src/tsk_xml.c
libtinySAK_la_LDFLAGS = $LDFLAGS -no-undefined
libtinySAK_la_HEADERS = src/*.h
libtinySAK_ladir = $(includedir)/tinysak

View File

@ -43,18 +43,18 @@
# define TSK_UNDER_WINDOWS 1
#endif
// OS X or iOS
#if defined(__APPLE__)
# define TSK_UNDER_APPLE 1
#endif
#if TARGET_OS_MAC
# define TSK_UNDER_MAC 1
#endif
#if TARGET_OS_IPHONE
# define TSK_UNDER_IPHONE 1
#endif
#if TARGET_IPHONE_SIMULATOR
# define TSK_UNDER_IPHONE_SIMULATOR 1
// OS X or iOS
#if defined(__APPLE__)
# define TSK_UNDER_APPLE 1
#endif
#if TARGET_OS_MAC
# define TSK_UNDER_MAC 1
#endif
#if TARGET_OS_IPHONE
# define TSK_UNDER_IPHONE 1
#endif
#if TARGET_IPHONE_SIMULATOR
# define TSK_UNDER_IPHONE_SIMULATOR 1
#endif
/* Used on Windows and Symbian systems to export/import public functions and global variables.
@ -113,7 +113,7 @@
#if HAVE_CONFIG_H
# include "../config.h"
# include "config.h"
#endif
#endif /* _TINYSAK_H_ */

View File

@ -0,0 +1,39 @@
lib_LTLIBRARIES = libtinySDP.la
libtinySDP_la_LIBADD = ../tinySAK/libtinySAK.la
libtinySDP_la_CPPFLAGS = -I../tinySAK/src -Iinclude
libtinySDP_la_SOURCES = \
src/tsdp.c\
src/tsdp_message.c
libtinySDP_la_SOURCES += src/headers/tsdp_header.c\
src/headers/tsdp_header_A.c\
src/headers/tsdp_header_B.c\
src/headers/tsdp_header_C.c\
src/headers/tsdp_header_Dummy.c\
src/headers/tsdp_header_E.c\
src/headers/tsdp_header_I.c\
src/headers/tsdp_header_K.c\
src/headers/tsdp_header_M.c\
src/headers/tsdp_header_O.c\
src/headers/tsdp_header_P.c\
src/headers/tsdp_header_R.c\
src/headers/tsdp_header_S.c\
src/headers/tsdp_header_T.c\
src/headers/tsdp_header_U.c\
src/headers/tsdp_header_V.c\
src/headers/tsdp_header_Z.c
libtinySDP_la_SOURCES += src/parsers/tsdp_parser_message.c
libtinySDP_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinysdp
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinysdp/tinysdp
__include_HEADERS = include/tinysdp/*.h
headers_includedir = $(includedir)/tinysdp/tinysdp/headers
headers_include_HEADERS = include/tinysdp/headers/*.h
parsers_includedir = $(includedir)/tinysdp/tinysdp/parsers
parsers_include_HEADERS = include/tinysdp/parsers/*.h

View File

@ -0,0 +1,40 @@
lib_LTLIBRARIES = libtinySIGCOMP.la
libtinySIGCOMP_la_LIBADD = ../tinySAK/libtinySAK.la
libtinySIGCOMP_la_CPPFLAGS = -I../tinySAK/src -Iinclude
libtinySIGCOMP_la_SOURCES = \
src/adler32.c\
src/compress.c\
src/deflate.c\
src/tcomp.c\
src/tcomp_buffer.c\
src/tcomp_compartment.c\
src/tcomp_compressordata.c\
src/tcomp_compressordisp.c\
src/tcomp_compressor_deflate.c\
src/tcomp_compressor_dummy.c\
src/tcomp_decompressordisp.c\
src/tcomp_deflatedata.c\
src/tcomp_deflatedata.ghost.c\
src/tcomp_deflatedata.zlib.c\
src/tcomp_dicts.c\
src/tcomp_manager.c\
src/tcomp_message.c\
src/tcomp_nackinfo.c\
src/tcomp_params.c\
src/tcomp_reqfeed.c\
src/tcomp_result.c\
src/tcomp_state.c\
src/tcomp_statehandler.c\
src/tcomp_udvm.bytecopy.c\
src/tcomp_udvm.c\
src/tcomp_udvm.instructions.c\
src/tcomp_udvm.nack.c\
src/tcomp_udvm.operands.c\
src/tcomp_udvm.statemanagment.c\
src/trees.c\
src/zutil.c
libtinySIGCOMP_la_LDFLAGS = $LDFLAGS -no-undefined
libtinySIGCOMP_la_HEADERS = src/*.h
libtinySIGCOMP_ladir = $(includedir)/tinysigcomp

View File

@ -0,0 +1,206 @@
lib_LTLIBRARIES = libtinySIP.la
libtinySIP_la_LIBADD = \
../tinySAK/libtinySAK.la\
../tinyNET/libtinyNET.la\
../tinyHTTP/libtinyHTTP.la\
../tinyIPSec/libtinyIPSec.la\
../tinySDP/libtinySDP.la\
../tinyMEDIA/libtinyMEDIA.la\
../tinySIGCOMP/libtinySIGCOMP.la
libtinySIP_la_CPPFLAGS = \
-I../tinySAK/src\
-I../tinyNET/src\
-I../tinyHTTP/include\
-I../tinyIPSec/src\
-I../tinySIGCOMP/src\
-I../tinySDP/include\
-I../tinyMEDIA/include\
-Iinclude
libtinySIP_la_SOURCES = \
src/tsip.c\
src/tsip_action.c\
src/tsip_event.c\
src/tsip_message.c\
src/tsip_ssession.c\
src/tsip_timers.c\
src/tsip_uri.c
libtinySIP_la_SOURCES += src/api/tsip_api_common.c\
src/api/tsip_api_info.c\
src/api/tsip_api_invite.c\
src/api/tsip_api_message.c\
src/api/tsip_api_options.c\
src/api/tsip_api_publish.c\
src/api/tsip_api_register.c\
src/api/tsip_api_subscribe.c
libtinySIP_la_SOURCES += src/authentication/tsip_challenge.c\
src/authentication/tsip_milenage.c\
src/authentication/tsip_rijndael.c
libtinySIP_la_SOURCES += src/dialogs/tsip_dialog.c\
src/dialogs/tsip_dialog_info.c\
src/dialogs/tsip_dialog_invite.c\
src/dialogs/tsip_dialog_invite.cdiv.c\
src/dialogs/tsip_dialog_invite.client.c\
src/dialogs/tsip_dialog_invite.conf.c\
src/dialogs/tsip_dialog_invite.ect.c\
src/dialogs/tsip_dialog_invite.hold.c\
src/dialogs/tsip_dialog_invite.ice.c\
src/dialogs/tsip_dialog_invite.qos.c\
src/dialogs/tsip_dialog_invite.server.c\
src/dialogs/tsip_dialog_invite.timers.c\
src/dialogs/tsip_dialog_layer.c\
src/dialogs/tsip_dialog_message.c\
src/dialogs/tsip_dialog_options.c\
src/dialogs/tsip_dialog_publish.client.c\
src/dialogs/tsip_dialog_register.c\
src/dialogs/tsip_dialog_register.client.c\
src/dialogs/tsip_dialog_register.server.c\
src/dialogs/tsip_dialog_subscribe.client.c\
src/dialogs/tsip_dialog_subscribe.server.c
libtinySIP_la_SOURCES += src/headers/tsip_header.c\
src/headers/tsip_header_accept.c\
src/headers/tsip_header_Accept_Contact.c\
src/headers/tsip_header_Accept_Encoding.c\
src/headers/tsip_header_Accept_Language.c\
src/headers/tsip_header_Accept_Resource_Priority.c\
src/headers/tsip_header_Alert_Info.c\
src/headers/tsip_header_Allow.c\
src/headers/tsip_header_Allow_Events.c\
src/headers/tsip_header_Authentication_Info.c\
src/headers/tsip_header_Authorization.c\
src/headers/tsip_header_Call_ID.c\
src/headers/tsip_header_Call_Info.c\
src/headers/tsip_header_Contact.c\
src/headers/tsip_header_Content_Disposition.c\
src/headers/tsip_header_Content_Encoding.c\
src/headers/tsip_header_Content_Language.c\
src/headers/tsip_header_Content_Length.c\
src/headers/tsip_header_Content_Type.c\
src/headers/tsip_header_CSeq.c\
src/headers/tsip_header_Date.c\
src/headers/tsip_header_Dummy.c\
src/headers/tsip_header_Error_Info.c\
src/headers/tsip_header_Event.c\
src/headers/tsip_header_Expires.c\
src/headers/tsip_header_From.c\
src/headers/tsip_header_History_Info.c\
src/headers/tsip_header_Identity.c\
src/headers/tsip_header_Identity_Info.c\
src/headers/tsip_header_In_Reply_To.c\
src/headers/tsip_header_Join.c\
src/headers/tsip_header_Max_Forwards.c\
src/headers/tsip_header_MIME_Version.c\
src/headers/tsip_header_Min_Expires.c\
src/headers/tsip_header_Min_SE.c\
src/headers/tsip_header_Organization.c\
src/headers/tsip_header_Path.c\
src/headers/tsip_header_Priority.c\
src/headers/tsip_header_Privacy.c\
src/headers/tsip_header_Proxy_Authenticate.c\
src/headers/tsip_header_Proxy_Authorization.c\
src/headers/tsip_header_Proxy_Require.c\
src/headers/tsip_header_P_Access_Network_Info.c\
src/headers/tsip_header_P_Answer_State.c\
src/headers/tsip_header_P_Asserted_Identity.c\
src/headers/tsip_header_P_Associated_URI.c\
src/headers/tsip_header_P_Called_Party_ID.c\
src/headers/tsip_header_P_Charging_Function_Addresses.c\
src/headers/tsip_header_P_Charging_Vector.c\
src/headers/tsip_header_P_DCS_Billing_Info.c\
src/headers/tsip_header_P_DCS_LAES.c\
src/headers/tsip_header_P_DCS_OSPS.c\
src/headers/tsip_header_P_DCS_Redirect.c\
src/headers/tsip_header_P_DCS_Trace_Party_ID.c\
src/headers/tsip_header_P_Early_Media.c\
src/headers/tsip_header_P_Media_Authorization.c\
src/headers/tsip_header_P_Preferred_Identity.c\
src/headers/tsip_header_P_Profile_Key.c\
src/headers/tsip_header_P_User_Database.c\
src/headers/tsip_header_P_Visited_Network_ID.c\
src/headers/tsip_header_RAck.c\
src/headers/tsip_header_Reason.c\
src/headers/tsip_header_Record_Route.c\
src/headers/tsip_header_Referred_By.c\
src/headers/tsip_header_Refer_Sub.c\
src/headers/tsip_header_Refer_To.c\
src/headers/tsip_header_Reject_Contact.c\
src/headers/tsip_header_Replaces.c\
src/headers/tsip_header_Reply_To.c\
src/headers/tsip_header_Request_Disposition.c\
src/headers/tsip_header_Require.c\
src/headers/tsip_header_Resource_Priority.c\
src/headers/tsip_header_Retry_After.c\
src/headers/tsip_header_Route.c\
src/headers/tsip_header_RSeq.c\
src/headers/tsip_header_Security_Client.c\
src/headers/tsip_header_Security_Server.c\
src/headers/tsip_header_Security_Verify.c\
src/headers/tsip_header_Server.c\
src/headers/tsip_header_Service_Route.c\
src/headers/tsip_header_Session_Expires.c\
src/headers/tsip_header_SIP_ETag.c\
src/headers/tsip_header_SIP_If_Match.c\
src/headers/tsip_header_Subject.c\
src/headers/tsip_header_Subscription_State.c\
src/headers/tsip_header_Supported.c\
src/headers/tsip_header_Target_Dialog.c\
src/headers/tsip_header_Timestamp.c\
src/headers/tsip_header_To.c\
src/headers/tsip_header_Unsupported.c\
src/headers/tsip_header_User_Agent.c\
src/headers/tsip_header_Via.c\
src/headers/tsip_header_Warning.c\
src/headers/tsip_header_WWW_Authenticate.c
libtinySIP_la_SOURCES += src/parsers/tsip_parser_header.c\
src/parsers/tsip_parser_message.c\
src/parsers/tsip_parser_uri.c
libtinySIP_la_SOURCES += src/sigcomp/tsip_sigcomp.c
libtinySIP_la_SOURCES += src/transactions/tsip_transac.c\
src/transactions/tsip_transac_ict.c\
src/transactions/tsip_transac_ist.c\
src/transactions/tsip_transac_layer.c\
src/transactions/tsip_transac_nict.c\
src/transactions/tsip_transac_nist.c
libtinySIP_la_SOURCES += src/transports/tsip_transport.c\
src/transports/tsip_transport_ipsec.c\
src/transports/tsip_transport_layer.c\
src/transports/tsip_transport_tls.c
libtinySIP_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinysip
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinysip/tinysip
__include_HEADERS = include/tinysip/*.h
api_includedir = $(includedir)/tinysip/tinysip/api
api_include_HEADERS = include/tinysip/api/*.h
authentication_includedir = $(includedir)/tinysip/tinysip/authentication
authentication_include_HEADERS = include/tinysip/authentication/*.h
dialogs_includedir = $(includedir)/tinysip/tinysip/dialogs
dialogs_include_HEADERS = include/tinysip/dialogs/*.h
headers_includedir = $(includedir)/tinysip/tinysip/headers
headers_include_HEADERS = include/tinysip/headers/*.h
parsers_includedir = $(includedir)/tinysip/tinysip/parsers
parsers_include_HEADERS = include/tinysip/parsers/*.h
sigcomp_includedir = $(includedir)/tinysip/tinysip/sigcomp
sigcomp_include_HEADERS = include/tinysip/sigcomp/*.h
transactions_includedir = $(includedir)/tinysip/tinysip/transactions
transactions_include_HEADERS = include/tinysip/transactions/*.h
transports_includedir = $(includedir)/tinysip/tinysip/transports
transports_include_HEADERS = include/tinysip/transports/*.h

View File

@ -0,0 +1,28 @@
lib_LTLIBRARIES = libtinySMS.la
libtinySMS_la_LIBADD = ../tinySAK/libtinySAK.la
libtinySMS_la_CPPFLAGS = -I../tinySAK/src -Iinclude
libtinySMS_la_SOURCES = \
src/tsms.c\
src/tsms_address.c\
src/tsms_common.c\
src/tsms_packing.c
libtinySMS_la_SOURCES += src/rpdu/tsms_rpdu.c
libtinySMS_la_SOURCES += src/tpdu/tsms_tpdu_command.c\
src/tpdu/tsms_tpdu_deliver.c\
src/tpdu/tsms_tpdu_report.c\
src/tpdu/tsms_tpdu_status_report.c\
src/tpdu/tsms_tpdu_submit.c
libtinySMS_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinysms
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinysms/tinysms
__include_HEADERS = include/tinysms/*.h
rpdu_includedir = $(includedir)/tinysms/tinysms/rpdu
rpdu_include_HEADERS = include/tinysms/rpdu/*.h
tpdu_includedir = $(includedir)/tinysms/tinysms/tpdu
tpdu_include_HEADERS = include/tinysms/tpdu/*.h

View File

@ -0,0 +1,19 @@
lib_LTLIBRARIES = libtinyXCAP.la
libtinyXCAP_la_LIBADD = ../tinySAK/libtinySAK.la ../tinyNET/libtinyNET.la ../tinyHTTP/libtinyHTTP.la
libtinyXCAP_la_CPPFLAGS = -I../tinySAK/src -I../tinyNET/src -I../tinyHTTP/include -Iinclude
libtinyXCAP_la_SOURCES = \
src/txcap.c\
src/txcap_auid.c\
src/txcap_document.c\
src/txcap_node.c\
src/txcap_selector.c\
src/txcap_action.c
libtinyXCAP_la_LDFLAGS = $LDFLAGS -no-undefined
_includedir = $(includedir)/tinyxcap
_include_HEADERS = include/*.h
__includedir = $(includedir)/tinyxcap/tinyxcap
__include_HEADERS = include/tinyxcap/*.h