Squashed 'third_party/rawrtc/re/' content from commit f3163ce8b

Change-Id: I6a235e6ac0f03269d951026f9d195da05c40fdab
git-subtree-dir: third_party/rawrtc/re
git-subtree-split: f3163ce8b526a13b35ef71ce4dd6f43585064d8a
diff --git a/mk/CMakeLists.txt b/mk/CMakeLists.txt
new file mode 100644
index 0000000..0ae3ccc
--- /dev/null
+++ b/mk/CMakeLists.txt
@@ -0,0 +1,151 @@
+cmake_minimum_required(VERSION 2.8.2)
+
+project(re)
+set(CMAKE_VERBOSE_MAKEFILE ON)
+
+SET(RE_ROOT ${PROJECT_SOURCE_DIR}/..)
+SET(RE_SRC_PREFIX ../src)
+
+# include header files for the IDEs
+file(GLOB_RECURSE HEADER_FILES src/*.h include/*.h)
+
+if(UNIX)
+	# get make db and extract information via regex's
+	execute_process(COMMAND make --no-print-directory --just-print --print-data-base info OUTPUT_VARIABLE RE_MAKEDB OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY ${RE_ROOT})
+
+	# get list of source files in SRCS = ...
+	STRING(REGEX MATCH "[\n\r]SRCS = ([^\n\r]+)" RE_SRCS "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]SRCS = " "" RE_SRCS "${RE_SRCS}")
+	# convert into list and prefix every element with 'src/'
+	SET(RE_SRCS "${RE_SRC_PREFIX}/${RE_SRCS}")
+	STRING(REPLACE " " ";${RE_SRC_PREFIX}/" RE_SRCS ${RE_SRCS})
+
+	# get CFLAGS
+	STRING(REGEX MATCH "[\n\r]CFLAGS = ([^\n\r]+)" RE_CFLAGS "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]CFLAGS = " "" RE_CFLAGS "${RE_CFLAGS}")
+	# remove anything that is not a macro define
+	STRING(REGEX REPLACE "-[^D][^ ]*" "" RE_CFLAGS "${RE_CFLAGS}" )
+
+	# get EXTRA_CFLAGS
+	STRING(REGEX MATCH "[\n\r]EXTRA_CFLAGS := ([^\n\r]+)" RE_EXTRA_CFLAGS "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]EXTRA_CFLAGS := " "" RE_EXTRA_CFLAGS "${RE_EXTRA_CFLAGS}")
+	if (RE_EXTRA_CFLAGS)
+		# not tested
+		STRING(REGEX REPLACE "\\$\\(EXTRA_CFLAGS\\)" ${RE_EXTRA_CFLAGS} RE_CFLAGS "${RE_CFLAGS}")
+	else()
+		STRING(REGEX REPLACE "\\$\\(EXTRA_CFLAGS\\)" "" RE_CFLAGS "${RE_CFLAGS}")
+	endif()
+
+	# get OS
+	STRING(REGEX MATCH "[\n\r]OS := ([^\n\r]+)" RE_OS "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]OS := " "" RE_OS "${RE_OS}")
+	STRING(REGEX REPLACE "\\$\\(OS\\)" ${RE_OS} RE_CFLAGS "${RE_CFLAGS}")
+
+	# get VERSION
+	STRING(REGEX MATCH "[\n\r]VERSION := ([^\n\r]+)" RE_VERSION "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]VERSION := " "" RE_VERSION "${RE_VERSION}")
+	STRING(REGEX REPLACE "\\$\\(VERSION\\)" ${RE_VERSION} RE_CFLAGS "${RE_CFLAGS}")
+
+	# get ARCH
+	STRING(REGEX MATCH "[\n\r]ARCH := ([^\n\r]+)" RE_ARCH "${RE_MAKEDB}")
+	STRING(REGEX REPLACE "[\n\r]ARCH := " "" RE_ARCH "${RE_ARCH}")
+	STRING(REGEX REPLACE "\\$\\(ARCH\\)" ${RE_ARCH} RE_CFLAGS "${RE_CFLAGS}")
+
+	# escaping '\': makefiles do need it, but it breaks xcode - not sure who's "right"
+	if (CMAKE_GENERATOR MATCHES Xcode)
+		STRING(REGEX REPLACE "\\\\" "" RE_CFLAGS "${RE_CFLAGS}" )
+	endif()
+
+	if (APPLE)
+		LIST(APPEND RE_SRCS "${RE_SRC_PREFIX}/lock/rwlock.c")
+		
+		# get MacOSX version
+		execute_process(COMMAND /usr/bin/sw_vers -productVersion
+			OUTPUT_VARIABLE MACOSX_VERSION
+			ERROR_VARIABLE MACOSX_VERSION_errors
+			RESULT_VARIABLE MACOSX_VERSION_result
+		OUTPUT_STRIP_TRAILING_WHITESPACE)
+		
+		# build universal binaries
+		set(CMAKE_OSX_ARCHITECTURES "x86_64;i386")
+		
+		if (${MACOSX_VERSION} VERSION_LESS 10.9)
+		  foreach(FLAGS CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS)
+			    set(${FLAGS} "${${FLAGS}} -mmacosx-version-min=10.6 -stdlib=libstdc++")
+		  endforeach()
+		else()
+		  foreach(FLAGS CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS CMAKE_MODULE_LINKER_FLAGS)
+			    set(${FLAGS} "${${FLAGS}} -mmacosx-version-min=10.7 -stdlib=libc++")
+		  endforeach()
+		endif()
+	endif()
+
+	message("libre sources: ${RE_SRCS}")
+	message("libre cflags: ${RE_CFLAGS}")
+	message("libre extra_cflags: ${RE_EXTRA_CFLAGS}")
+	message("libre OS: ${RE_OS}")
+	message("libre arch: ${RE_ARCH}")
+	message("libre version: ${RE_VERSION}")
+
+elseif(WIN32)
+	# hard-coded on Win32
+	if(MSVC)
+		SET(RE_CFLAGS
+			"-DWIN32 -D_CONSOLE -D_CRT_SECURE_NO_DEPRECATE -DHAVE_SELECT -DHAVE_IO_H"
+		)
+	elseif(MINGW)
+		SET(RE_CFLAGS
+			"-DHAVE_STDBOOL_H -DHAVE_INET6 -DHAVE_SELECT -DHAVE_IO_H"
+		)
+		add_definitions(-Wall -D_WIN32_WINNT=0x0501)
+	endif()
+	# quotes get eaten in generator
+	add_definitions(-DOS=\"win32\" -DWIN32 -DARCH=\"i386\" -DVERSION=\"0.3.0\")
+	
+	# on windows we cannot rely on make and have to do this by hand
+	file(GLOB_RECURSE RE_SRCS RELATIVE ${PROJECT_SOURCE_DIR} ${RE_ROOT}/src/*.c)
+	
+	# remove files to compile depending on the compiler flags
+	if (RE_CFLAGS MATCHES USE_ZLIB)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/crc32/crc32.c")
+	endif()
+
+	if (NOT RE_CFLAGS MATCHES HAVE_PTHREAD_RWLOCK)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/lock/rwlock.c")
+	endif()
+
+	if (NOT RE_CFLAGS MATCHES HAVE_GETIFADDRS)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/net/ifaddrs.c")
+	endif()
+	
+	if (NOT RE_CFLAGS MATCHES HAVE_EPOLL)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/main/epoll.c")
+	endif()
+	
+	if (NOT RE_CFLAGS MATCHES USE_OPENSSL)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/tls/openssl/tls.c")
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/tls/openssl/tls_tcp.c")
+	endif()
+	
+	if (NOT RE_CFLAGS MATCHES HAVE_PTHREAD)
+		LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/lock/lock.c")
+	endif()
+	
+	# remove files not to be comiled for win32 in any case
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/httpauth/basic.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/mod/dl.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/net/posix/pif.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/net/linux/rt.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/dns/res.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/dns/darwin/srv.c")
+	LIST(REMOVE_ITEM RE_SRCS "${RE_SRC_PREFIX}/net/bsd/brt.c")
+	
+endif()
+
+include_directories(${RE_ROOT}/include)
+
+add_library(re ${RE_SRCS} ${HEADER_FILES})
+
+SET_TARGET_PROPERTIES(re PROPERTIES
+	COMPILE_FLAGS ${RE_CFLAGS}
+)
diff --git a/mk/Doxyfile b/mk/Doxyfile
new file mode 100644
index 0000000..1361b52
--- /dev/null
+++ b/mk/Doxyfile
@@ -0,0 +1,239 @@
+# Doxyfile 1.4.7
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = libre
+PROJECT_NUMBER         = 0.1.0
+OUTPUT_DIRECTORY       = ../re-dox
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+#USE_WINDOWS_ENCODING   = NO
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+#DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+SEPARATE_MEMBER_PAGES  = NO
+TAB_SIZE               = 8
+ALIASES                = 
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+#BUILTIN_STL_SUPPORT    = NO
+DISTRIBUTE_GROUP_DOC   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = YES
+HIDE_UNDOC_CLASSES     = YES
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = NO
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+#SHOW_DIRECTORIES       = NO
+FILE_VERSION_FILTER    = 
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = YES
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_NO_PARAMDOC       = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = include src docs
+FILE_PATTERNS          = *.c \
+                         *.h \
+                         *.dox
+RECURSIVE              = YES
+EXCLUDE                = test.c \
+			 include/re_bitv.h \
+			 src/md5/md5.h src/md5/md5.c
+
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = */.svn/*
+EXAMPLE_PATH           = .
+EXAMPLE_PATTERNS       = *
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_PATTERNS        = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = YES
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+#REFERENCES_LINK_SOURCE = YES
+#USE_HTAGS              = NO
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+#HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = NO
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = YES
+EXPAND_ONLY_PREDEF     = YES
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = include
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = HAVE_INTTYPES_H HAVE_INET6 HAVE_STDBOOL_H
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = YES
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+GROUP_GRAPHS           = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+#CALL_GRAPH             = YES	todo: disabled to run faster
+#CALLER_GRAPH           = YES
+GRAPHICAL_HIERARCHY    = YES
+DIRECTORY_GRAPH        = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+DOT_GRAPH_MAX_NODES    = 256
+#MAX_DOT_GRAPH_WIDTH    = 1024
+#MAX_DOT_GRAPH_HEIGHT   = 1024
+#MAX_DOT_GRAPH_DEPTH    = 1000
+DOT_TRANSPARENT        = NO
+DOT_MULTI_TARGETS      = NO
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
diff --git a/mk/exclude b/mk/exclude
new file mode 100644
index 0000000..c1f1f79
--- /dev/null
+++ b/mk/exclude
@@ -0,0 +1 @@
+rpm/
diff --git a/mk/re.mk b/mk/re.mk
new file mode 100644
index 0000000..3347945
--- /dev/null
+++ b/mk/re.mk
@@ -0,0 +1,829 @@
+#
+# re.mk - common make rules
+#
+# Copyright (C) 2010 Creytiv.com
+#
+# Imported variables:
+#
+#   ARCH           Target architecture
+#   CC             Compiler
+#   CROSS_COMPILE  Cross-compiler prefix (optional)
+#   EXTRA_CFLAGS   Extra compiler flags appended to CFLAGS
+#   EXTRA_LFLAGS   Extra linker flags appended to LFLAGS
+#   GCOV           If non-empty, enable GNU Coverage testing
+#   GPROF          If non-empty, enable GNU Profiling
+#   OPT_SIZE       If non-empty, optimize for size
+#   OPT_SPEED      If non-empty, optimize for speed
+#   PROJECT        Project name
+#   RELEASE        Release build
+#   SYSROOT        System root of library and include files
+#   SYSROOT_ALT    Alternative system root of library and include files
+#   USE_OPENSSL    If non-empty, link to libssl library
+#   USE_ZLIB       If non-empty, link to libz library
+#   VERSION        Version number
+#
+# Exported variables:
+#
+#   APP_LFLAGS     Linker flags for applications using modules
+#   BIN_SUFFIX     Suffix for binary executables
+#   CC             Compiler
+#   CCACHE         Compiler ccache tool
+#   CFLAGS         Compiler flags
+#   DFLAGS         Dependency generator flags
+#   LFLAGS         Common linker flags
+#   LIBS           Libraries to link against
+#   LIB_SUFFIX     Suffix for shared libraries
+#   MOD_LFLAGS     Linker flags for dynamic modules
+#   MOD_SUFFIX     Suffix for dynamic modules
+#   SH_LFLAGS      Linker flags for shared libraries
+#   USE_TLS        Defined if TLS is available
+#   USE_DTLS       Defined if DTLS is available
+#
+
+
+ifneq ($(RELEASE),)
+CFLAGS  += -DRELEASE
+OPT_SPEED=1
+endif
+
+
+# Default system root
+ifeq ($(SYSROOT),)
+SYSROOT := /usr
+endif
+
+# Alternative Systemroot
+ifeq ($(SYSROOT_ALT),)
+SYSROOT_ALT := $(shell [ -d /sw/include ] && echo "/sw")
+endif
+ifeq ($(SYSROOT_ALT),)
+SYSROOT_ALT := $(shell [ -d /opt/local/include ] && echo "/opt/local")
+endif
+
+ifneq ($(SYSROOT_ALT),)
+CFLAGS  += -I$(SYSROOT_ALT)/include
+LFLAGS  += -L$(SYSROOT_ALT)/lib
+endif
+
+
+##############################################################################
+#
+# Compiler section
+#
+# find compiler name & version
+
+ifeq ($(CC),)
+	CC := gcc
+endif
+ifeq ($(CC),cc)
+	CC := gcc
+endif
+LD := $(CC)
+CC_LONGVER := $(shell if $(CC) -v 2>/dev/null; then \
+						$(CC) -v 2>&1 ;\
+					else \
+						$(CC) -V 2>&1 ; \
+					fi )
+
+# find-out the compiler's name
+
+ifneq (,$(findstring gcc, $(CC_LONGVER)))
+	CC_NAME := gcc
+	CC_VER := $(word 1,$(CC)) $(shell $(CC) - --version|head -n 1|\
+		cut -d" " -f 3|\
+		sed -e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\
+		-e 's/^[^0-9].*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/')
+	# sun sed is a little brain damaged => this complicated expression
+	MKDEP := $(CC) -MM
+	#transform gcc version into 2.9x, 3.x or 4.x
+	CC_SHORTVER := $(shell echo "$(CC_VER)" | cut -d" " -f 2| \
+			 sed -e 's/[^0-9]*-\(.*\)/\1/'| \
+			 sed -e 's/2\.9.*/2.9x/' -e 's/3\.[0-3]\..*/3.0/' -e \
+			 	's/3\.[0-3]/3.0/' -e 's/3\.[4-9]\..*/3.4/' -e\
+				's/3\.[4-9]/3.4/' -e 's/4\.[0-9]\..*/4.x/' -e\
+				's/4\.[0-9]/4.x/' )
+endif
+
+ifeq ($(CC_NAME),)
+ifneq (,$(findstring clang, $(CC_LONGVER)))
+	CC_NAME := clang
+	CC_SHORTVER := $(shell echo "$(CC_LONGVER)"|head -n 1| \
+		sed -e 's/.*version \([0-9]\.[0-9]\).*/\1/g' )
+	CC_VER := $(CC) $(CC_SHORTVER)
+	MKDEP := $(CC) -MM
+endif
+endif
+
+ifeq ($(CC_NAME),)
+ifneq (, $(findstring Sun, $(CC_LONGVER)))
+	CC_NAME := suncc
+	CC_SHORTVER := $(shell echo "$(CC_LONGVER)"|head -n 1| \
+					sed -e 's/.*\([0-9]\.[0-9]\).*/\1/g' )
+	CC_VER := $(CC) $(CC_SHORTVER)
+	MKDEP  := $(CC) -xM1
+endif
+endif
+
+ifeq ($(CC_NAME),)
+ifneq (, $(findstring Intel(R) C++ Compiler, $(CC_LONGVER)))
+	# very nice: gcc compatible
+	CC_NAME := icc
+	CC_FULLVER := $(shell echo "$(CC_LONGVER)"|head -n 1| \
+			sed -e 's/.*Version \([0-9]\.[0-9]\.[0-9]*\).*/\1/g')
+	CC_SHORTVER := $(shell echo "$(CC_FULLVER)" | cut -d. -f1,2 )
+	CC_VER := $(CC) $(CC_FULLVER)
+	MKDEP  := $(CC) -MM
+endif
+endif
+
+
+ifeq (,$(CC_NAME))
+#not found
+	CC_NAME     := $(CC)
+	CC_SHORTVER := unknown
+	CC_VER      := unknown
+	MKDEP       := gcc -MM
+$(warning	Unknown compiler $(CC)\; supported compilers: \
+			gcc, clang, sun cc, intel icc )
+endif
+
+
+# Compiler warning flags
+CFLAGS	+= -Wall
+CFLAGS	+= -Wmissing-declarations
+CFLAGS	+= -Wmissing-prototypes
+CFLAGS	+= -Wstrict-prototypes
+CFLAGS	+= -Wbad-function-cast
+CFLAGS	+= -Wsign-compare
+CFLAGS	+= -Wnested-externs
+CFLAGS	+= -Wshadow
+CFLAGS	+= -Waggregate-return
+CFLAGS	+= -Wcast-align
+
+
+ifeq ($(CC_SHORTVER),4.x)
+CFLAGS	+= -Wextra
+CFLAGS	+= -Wold-style-definition
+CFLAGS	+= -Wdeclaration-after-statement
+endif
+
+CFLAGS  += -g
+ifneq ($(OPT_SPEED),)
+CFLAGS  += -O3  # Optimize for speed - takes longer to compile!
+OPTIMIZE := 1
+endif
+ifneq ($(OPT_SIZE),)
+CFLAGS  += -Os  # Optimize for size - takes longer to compile!
+OPTIMIZE := 1
+endif
+
+ifneq ($(OPTIMIZE),)
+CFLAGS	+= -Wuninitialized
+ifneq ($(CC_SHORTVER), 2.9x)
+CFLAGS	+= -Wno-strict-aliasing
+endif
+endif
+
+# Compiler dependency flags
+ifeq ($(CC_SHORTVER), 2.9x)
+	DFLAGS		= -MD
+else
+	DFLAGS		= -MD -MF $(@:.o=.d) -MT $@
+endif
+
+
+##############################################################################
+#
+# OS section
+#
+
+MACHINE   := $(shell $(CC) -dumpmachine)
+
+ifeq ($(CROSS_COMPILE),)
+OS        := $(shell uname -s | sed -e s/SunOS/solaris/ | tr "[A-Z]" "[a-z]")
+endif
+
+
+ifneq ($(strip $(filter i386-mingw32 i486-mingw32 i586-mingw32msvc \
+	i686-w64-mingw32 x86_64-w64-mingw32 mingw32, \
+	$(MACHINE))),)
+	OS   := win32
+ifeq ($(MACHINE), mingw32)
+	CROSS_COMPILE :=
+endif
+endif
+
+
+# default
+LIB_SUFFIX	:= .so
+MOD_SUFFIX	:= .so
+BIN_SUFFIX	:=
+
+ifeq ($(OS),solaris)
+	CFLAGS		+= -fPIC -DSOLARIS
+	LIBS		+= -ldl -lresolv -lsocket -lnsl
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -G
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+=
+	AR		:= ar
+	AFLAGS		:= cru
+endif
+ifeq ($(OS),linux)
+	CFLAGS		+= -fPIC -DLINUX
+	LIBS		+= -ldl
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= crD
+endif
+ifeq ($(OS),gnu)
+	CFLAGS		+= -fPIC -DGNU
+	LIBS		+= -ldl
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+endif
+ifeq ($(OS),darwin)
+	CFLAGS		+= -fPIC -dynamic -DDARWIN
+ifneq (,$(findstring Apple, $(CC_LONGVER)))
+	CFLAGS		+= -Wshorten-64-to-32
+endif
+	DFLAGS		:= -MD
+	LIBS		+= -lresolv
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -dynamiclib
+ifeq ($(CC_NAME),gcc)
+	SH_LFLAGS	+= -dylib
+endif
+ifneq ($(VERSION),)
+	SH_LFLAGS	+= -current_version $(VERSION)
+	SH_LFLAGS	+= -compatibility_version $(VERSION)
+endif
+	MOD_LFLAGS	+= -undefined dynamic_lookup
+	APP_LFLAGS	+=
+	AR		:= ar
+	AFLAGS		:= cru
+	LIB_SUFFIX	:= .dylib
+	HAVE_KQUEUE	:= 1
+endif
+ifeq ($(OS),netbsd)
+	CFLAGS		+= -fPIC -DNETBSD
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+	HAVE_KQUEUE	:= 1
+endif
+ifeq ($(OS),freebsd)
+	CFLAGS		+= -fPIC -DFREEBSD
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+	HAVE_KQUEUE	:= 1
+endif
+ifeq ($(OS),gnu/kfreebsd)
+	CFLAGS		+= -fPIC -DKFREEBSD -D_GNU_SOURCE
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+	HAVE_KQUEUE	:= 1
+endif
+ifeq ($(OS),dragonfly)
+	CFLAGS		+= -fPIC -DDRAGONFLY
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+	HAVE_KQUEUE	:= 1
+endif
+ifeq ($(OS),openbsd)
+	CFLAGS		+= -fPIC -DOPENBSD
+	LFLAGS		+= -fPIC
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -rdynamic
+	AR		:= ar
+	AFLAGS		:= cru
+	HAVE_KQUEUE	:= 1
+	HAVE_ARC4RANDOM	:= 1
+endif
+ifeq ($(OS),win32)
+	CFLAGS		+= -DWIN32 -D_WIN32_WINNT=0x0501 -D__ssize_t_defined
+	LIBS		+= -lwsock32 -lws2_32 -liphlpapi
+	LFLAGS		+=
+	SH_LFLAGS	+= -shared
+	MOD_LFLAGS	+=
+	APP_LFLAGS	+= -Wl,--export-all-symbols
+	AR		:= ar
+	AFLAGS		:= cru
+	CROSS_COMPILE	?= $(MACHINE)-
+	RANLIB		:= $(CROSS_COMPILE)ranlib
+	LIB_SUFFIX	:= .dll
+	MOD_SUFFIX	:= .dll
+	BIN_SUFFIX	:= .exe
+	SYSROOT		:= /usr/$(MACHINE)/
+endif
+
+CFLAGS	+= -DOS=\"$(OS)\"
+
+ifeq ($(CC_SHORTVER),2.9x)
+CFLAGS  += -Wno-long-long
+else
+CFLAGS  += -std=c99
+PEDANTIC := 1
+endif # CC_SHORTVER
+
+ifneq ($(PEDANTIC),)
+CFLAGS  += -pedantic
+endif
+
+
+ifeq ($(OS),)
+$(warning Could not detect OS)
+endif
+
+
+##############################################################################
+#
+# Architecture section
+#
+
+
+ifeq ($(ARCH),)
+ifeq ($(CC_NAME),$(filter $(CC_NAME),gcc clang))
+PREDEF	:= $(shell $(CC) -dM -E -x c $(EXTRA_CFLAGS) $(CFLAGS) /dev/null)
+
+ifneq ($(strip $(filter i386 __i386__ __i386 _M_IX86 __X86__ _X86_, \
+	$(PREDEF))),)
+ARCH	:= i386
+endif
+
+ifneq ($(strip $(filter __i486__,$(PREDEF))),)
+ARCH	:= i486
+endif
+
+ifneq ($(strip $(filter __i586__,$(PREDEF))),)
+ARCH	:= i586
+endif
+
+ifneq ($(strip $(filter __i686__ ,$(PREDEF))),)
+ARCH	:= i686
+endif
+
+ifneq ($(strip $(filter __amd64__ __amd64 __x86_64__ __x86_64, \
+	$(PREDEF))),)
+ARCH	:= x86_64
+endif
+
+ifneq ($(strip $(filter __arm__ __thumb__,$(PREDEF))),)
+
+ifneq ($(strip $(filter __ARM_ARCH_6__,$(PREDEF))),)
+ARCH	:= arm6
+else
+ARCH	:= arm
+endif
+
+endif
+
+ifneq ($(strip $(filter __arm64__ ,$(PREDEF))),)
+ARCH   := arm64
+endif
+
+ifneq ($(strip $(filter __mips__ __mips, $(PREDEF))),)
+ARCH	:= mips
+endif
+
+ifneq ($(strip $(filter __powerpc __powerpc__ __POWERPC__ __ppc__ \
+	_ARCH_PPC, $(PREDEF))),)
+ARCH	:= ppc
+endif
+
+ifneq ($(strip $(filter __ppc64__ _ARCH_PPC64 , $(PREDEF))),)
+ARCH	:= ppc64
+endif
+
+ifneq ($(strip $(filter __sparc__ __sparc __sparcv8 , $(PREDEF))),)
+
+ifneq ($(strip $(filter __sparcv9 __sparc_v9__ , $(PREDEF))),)
+ARCH	:= sparc64
+else
+ARCH	:= sparc
+endif
+
+endif
+
+endif
+endif
+
+
+ifeq ($(ARCH),)
+$(warning Could not detect ARCH)
+endif
+
+
+CFLAGS	+= -DARCH=\"$(ARCH)\"
+
+ifeq ($(ARCH),mipsel)
+CFLAGS += -march=mips32
+endif
+
+
+##############################################################################
+#
+# External libraries section
+#
+
+USE_OPENSSL := $(shell [ -f $(SYSROOT)/include/openssl/ssl.h ] || \
+	[ -f $(SYSROOT)/local/include/openssl/ssl.h ] || \
+	[ -f $(SYSROOT_ALT)/include/openssl/ssl.h ] && echo "yes")
+
+ifneq ($(USE_OPENSSL),)
+CFLAGS  += -DUSE_OPENSSL -DUSE_TLS
+LIBS    += -lssl -lcrypto
+USE_TLS := yes
+
+USE_OPENSSL_DTLS := $(shell [ -f $(SYSROOT)/include/openssl/dtls1.h ] || \
+	[ -f $(SYSROOT)/local/include/openssl/dtls1.h ] || \
+	[ -f $(SYSROOT_ALT)/include/openssl/dtls1.h ] && echo "yes")
+
+USE_OPENSSL_SRTP := $(shell [ -f $(SYSROOT)/include/openssl/srtp.h ] || \
+	[ -f $(SYSROOT)/local/include/openssl/srtp.h ] || \
+	[ -f $(SYSROOT_ALT)/include/openssl/srtp.h ] && echo "yes")
+
+ifneq ($(USE_OPENSSL_DTLS),)
+CFLAGS  += -DUSE_OPENSSL_DTLS -DUSE_DTLS
+USE_DTLS := yes
+endif
+
+ifneq ($(USE_OPENSSL_SRTP),)
+CFLAGS  += -DUSE_OPENSSL_SRTP -DUSE_DTLS_SRTP
+USE_DTLS_SRTP := yes
+endif
+
+USE_OPENSSL_AES		:= yes
+USE_OPENSSL_HMAC	:= yes
+
+endif
+
+
+USE_ZLIB    := $(shell [ -f $(SYSROOT)/include/zlib.h ] || \
+	[ -f $(SYSROOT)/local/include/zlib.h ] || \
+	[ -f $(SYSROOT_ALT)/include/zlib.h ] && echo "yes")
+
+ifneq ($(USE_ZLIB),)
+CFLAGS  += -DUSE_ZLIB
+LIBS    += -lz
+endif
+
+
+ifneq ($(OS),win32)
+
+HAVE_PTHREAD    := $(shell [ -f $(SYSROOT)/include/pthread.h ] && echo "1")
+ifneq ($(HAVE_PTHREAD),)
+HAVE_PTHREAD_RWLOCK := 1
+CFLAGS  += -DHAVE_PTHREAD
+HAVE_LIBPTHREAD := 1
+ifneq ($(HAVE_LIBPTHREAD),)
+LIBS	+= -lpthread
+endif
+endif
+
+ifneq ($(ARCH),mipsel)
+HAVE_GETIFADDRS := $(shell [ -f $(SYSROOT)/include/ifaddrs.h ] && echo "1")
+ifneq ($(HAVE_GETIFADDRS),)
+CFLAGS  += -DHAVE_GETIFADDRS
+endif
+endif
+
+HAVE_STRERROR_R	:= 1
+ifneq ($(HAVE_STRERROR_R),)
+CFLAGS += -DHAVE_STRERROR_R
+endif
+
+endif
+
+HAVE_GETOPT     := $(shell [ -f $(SYSROOT)/include/getopt.h ] && echo "1")
+ifneq ($(HAVE_GETOPT),)
+CFLAGS  += -DHAVE_GETOPT
+endif
+HAVE_INTTYPES_H := $(shell [ -f $(SYSROOT)/include/inttypes.h ] && echo "1")
+ifneq ($(HAVE_INTTYPES_H),)
+CFLAGS  += -DHAVE_INTTYPES_H
+endif
+HAVE_NET_ROUTE_H := $(shell [ -f $(SYSROOT)/include/net/route.h ] && echo "1")
+ifneq ($(HAVE_NET_ROUTE_H),)
+CFLAGS  += -DHAVE_NET_ROUTE_H
+endif
+HAVE_SYS_SYSCTL_H := \
+	$(shell [ -f $(SYSROOT)/include/sys/sysctl.h ] || \
+		[ -f $(SYSROOT)/include/$(MACHINE)/sys/sysctl.h ] \
+		&& echo "1")
+ifneq ($(HAVE_SYS_SYSCTL_H),)
+CFLAGS  += -DHAVE_SYS_SYSCTL_H
+endif
+
+CFLAGS  += -DHAVE_STDBOOL_H
+
+HAVE_INET6      := 1
+ifneq ($(HAVE_INET6),)
+CFLAGS  += -DHAVE_INET6
+endif
+
+ifeq ($(OS),win32)
+CFLAGS  += -DHAVE_SELECT
+CFLAGS  += -DHAVE_IO_H
+else
+HAVE_SYSLOG  := $(shell [ -f $(SYSROOT)/include/syslog.h ] && echo "1")
+HAVE_DLFCN_H := $(shell [ -f $(SYSROOT)/include/dlfcn.h ] && echo "1")
+ifneq ($(OS),darwin)
+HAVE_EPOLL   := $(shell [ -f $(SYSROOT)/include/sys/epoll.h ] || \
+			[ -f $(SYSROOT)/include/$(MACHINE)/sys/epoll.h ] \
+			&& echo "1")
+endif
+
+HAVE_RESOLV := $(shell [ -f $(SYSROOT)/include/resolv.h ] && echo "1")
+
+ifneq ($(HAVE_RESOLV),)
+CFLAGS  += -DHAVE_RESOLV
+endif
+ifneq ($(HAVE_SYSLOG),)
+CFLAGS  += -DHAVE_SYSLOG
+endif
+
+HAVE_INET_NTOP := 1
+
+CFLAGS  += -DHAVE_FORK
+
+ifneq ($(HAVE_INET_NTOP),)
+CFLAGS  += -DHAVE_INET_NTOP
+endif
+CFLAGS  += -DHAVE_PWD_H
+ifneq ($(OS),darwin)
+CFLAGS  += -DHAVE_POLL	# Darwin: poll() does not support devices
+HAVE_INET_PTON := 1
+endif
+ifneq ($(HAVE_INET_PTON),)
+CFLAGS  += -DHAVE_INET_PTON
+endif
+CFLAGS  += -DHAVE_SELECT -DHAVE_SELECT_H
+CFLAGS  += -DHAVE_SETRLIMIT
+CFLAGS  += -DHAVE_SIGNAL
+CFLAGS  += -DHAVE_SYS_TIME_H
+ifneq ($(HAVE_EPOLL),)
+CFLAGS  += -DHAVE_EPOLL
+endif
+ifneq ($(HAVE_KQUEUE),)
+CFLAGS  += -DHAVE_KQUEUE
+endif
+CFLAGS  += -DHAVE_UNAME
+CFLAGS  += -DHAVE_UNISTD_H
+CFLAGS  += -DHAVE_STRINGS_H
+endif
+
+ifneq ($(HAVE_ARC4RANDOM),)
+CFLAGS  += -DHAVE_ARC4RANDOM
+endif
+
+
+##############################################################################
+#
+# Misc tools section
+#
+CCACHE	:= $(shell [ -e /usr/bin/ccache ] 2>/dev/null \
+	|| [ -e /opt/local/bin/ccache ] \
+	&& echo "ccache")
+CFLAGS  += -DVERSION=\"$(VERSION)\"
+CFLAGS  += \
+	-DVER_MAJOR=$(VER_MAJOR) \
+	-DVER_MINOR=$(VER_MINOR) \
+	-DVER_PATCH=$(VER_PATCH)
+
+
+# Enable gcov Coverage testing
+#
+# - generated during build: .gcno files
+# - generated during exec:  .gcda files
+#
+ifneq ($(GCOV),)
+CFLAGS += -fprofile-arcs -ftest-coverage
+LFLAGS += -fprofile-arcs -ftest-coverage
+# Disable ccache
+CCACHE :=
+endif
+
+# gprof - GNU Profiling
+#
+# - generated during exec:  gmon.out
+#
+ifneq ($(GPROF),)
+CFLAGS += -pg
+LFLAGS += -pg
+# Disable ccache
+CCACHE :=
+endif
+
+CC	:= $(CCACHE) $(CC)
+CFLAGS	+= $(EXTRA_CFLAGS)
+LFLAGS	+= $(EXTRA_LFLAGS)
+
+BUILD   := build-$(ARCH)
+
+
+default:	all
+
+.PHONY: distclean
+distclean:
+	@rm -rf build* *core*
+	@rm -f *stamp $(BIN)
+	@rm -f `find . -name "*.[oda]"` `find . -name "*.so"`
+	@rm -f `find . -name "*~"` `find . -name "\.\#*"`
+	@rm -f `find . -name "*.orig"` `find . -name "*.rej"`
+	@rm -f `find . -name "*.previous"` `find . -name "*.gcov"`
+	@rm -f `find . -name "*.exe"` `find . -name "*.dll"`
+	@rm -f `find . -name "*.dylib"`
+
+.PHONY: info
+info:
+	@echo "info - $(PROJECT) version $(VERSION)"
+	@echo "  MODULES:       $(MODULES)"
+#	@echo "  SRCS:          $(SRCS)"
+	@echo "  MACHINE:       $(MACHINE)"
+	@echo "  ARCH:          $(ARCH)"
+	@echo "  OS:            $(OS)"
+	@echo "  BUILD:         $(BUILD)"
+	@echo "  CCACHE:        $(CCACHE)"
+	@echo "  CC:            $(CC_NAME) $(CC_SHORTVER)"
+	@echo "  CFLAGS:        $(CFLAGS)"
+	@echo "  DFLAGS:        $(DFLAGS)"
+	@echo "  LFLAGS:        $(LFLAGS)"
+	@echo "  SH_LFLAGS:     $(SH_LFLAGS)"
+	@echo "  MOD_LFLAGS:    $(MOD_LFLAGS)"
+	@echo "  APP_LFLAGS:    $(APP_LFLAGS)"
+	@echo "  LIBS:          $(LIBS)"
+	@echo "  LIBRE_MK:      $(LIBRE_MK)"
+	@echo "  LIBRE_INC:     $(LIBRE_INC)"
+	@echo "  LIBRE_SO:      $(LIBRE_SO)"
+	@echo "  USE_OPENSSL:   $(USE_OPENSSL)"
+	@echo "  USE_OPENSSL_AES:   $(USE_OPENSSL_AES)"
+	@echo "  USE_OPENSSL_HMAC:  $(USE_OPENSSL_HMAC)"
+	@echo "  USE_TLS:       $(USE_TLS)"
+	@echo "  USE_DTLS:      $(USE_DTLS)"
+	@echo "  USE_DTLS_SRTP: $(USE_DTLS_SRTP)"
+	@echo "  USE_ZLIB:      $(USE_ZLIB)"
+	@echo "  GCOV:          $(GCOV)"
+	@echo "  GPROF:         $(GPROF)"
+	@echo "  CROSS_COMPILE: $(CROSS_COMPILE)"
+	@echo "  SYSROOT:       $(SYSROOT)"
+	@echo "  SYSROOT_ALT:   $(SYSROOT_ALT)"
+	@echo "  LIB_SUFFIX:    $(LIB_SUFFIX)"
+	@echo "  MOD_SUFFIX:    $(MOD_SUFFIX)"
+	@echo "  BIN_SUFFIX:    $(BIN_SUFFIX)"
+
+
+##############################################################################
+#
+# Packaging section
+#
+TAR_SRC   := $(PROJECT)-$(VERSION)
+
+release:
+	@rm -rf ../$(TAR_SRC)
+	@svn export . ../$(TAR_SRC)
+	@if [ -f ../$(TAR_SRC)/mk/exclude ]; then \
+		cat ../$(TAR_SRC)/mk/exclude \
+			| sed 's|^|../$(TAR_SRC)/|' | xargs -t rm -rf ; \
+		rm -f ../$(TAR_SRC)/mk/exclude ; \
+	fi
+	@cd .. && rm -f $(TAR_SRC).tar.gz \
+		&& tar -zcf $(TAR_SRC).tar.gz $(TAR_SRC) \
+		&& echo "created release tarball `pwd`/$(TAR_SRC).tar.gz"
+
+tar:
+	@rm -rf ../$(TAR_SRC)
+	@svn export . ../$(TAR_SRC)
+	@cd .. && rm -f $(TAR_SRC).tar.gz \
+		&& tar -zcf $(TAR_SRC).tar.gz $(TAR_SRC) \
+		&& echo "created source tarball `pwd`/$(TAR_SRC).tar.gz"
+
+
+git_release:
+	git archive --format=tar --prefix=$(PROJECT)-$(VERSION)/ v$(VERSION) \
+		| gzip > ../$(PROJECT)-$(VERSION).tar.gz
+
+
+git_snapshot:
+	git archive --format=tar --prefix=$(PROJECT)-$(VERSION)/ HEAD \
+		| gzip > ../$(PROJECT)-$(VERSION).tar.gz
+
+
+# Debian
+.PHONY: deb
+deb:
+	dpkg-buildpackage -rfakeroot
+
+.PHONY: debclean
+debclean:
+	@rm -rf build-stamp configure-stamp debian/files debian/$(PROJECT) \
+		debian/lib$(PROJECT) debian/lib$(PROJECT)-dev debian/tmp \
+		debian/.debhelper debian/*.debhelper debian/*.debhelper.log \
+		debian/*.substvars
+
+# RPM
+RPM := $(shell [ -d /usr/src/rpm ] 2>/dev/null && echo "rpm")
+ifeq ($(RPM),)
+RPM := $(shell [ -d /usr/src/redhat ] 2>/dev/null && echo "redhat")
+endif
+.PHONY: rpm
+rpm:    tar
+	sudo cp ../$(PROJECT)-$(VERSION).tar.gz /usr/src/$(RPM)/SOURCES
+	sudo rpmbuild -ba rpm/$(PROJECT).spec
+
+
+##############################################################################
+#
+# Library and header files location section - in prioritised order
+#
+# - relative path
+# - local installation
+# - system installation
+#
+
+LIBRE_PATH := ../re
+
+# Include path
+LIBRE_INC := $(shell [ -f $(LIBRE_PATH)/include/re.h ] && \
+	echo "$(LIBRE_PATH)/include")
+ifeq ($(LIBRE_INC),)
+LIBRE_INC := $(shell [ -f /usr/local/include/re/re.h ] && \
+	echo "/usr/local/include/re")
+endif
+ifeq ($(LIBRE_INC),)
+LIBRE_INC := $(shell [ -f /usr/include/re/re.h ] && echo "/usr/include/re")
+endif
+
+# Library path
+LIBRE_SO  := $(shell [ -f $(LIBRE_PATH)/libre$(LIB_SUFFIX) ] \
+	&& echo "$(LIBRE_PATH)")
+ifeq ($(LIBRE_SO),)
+LIBRE_SO  := $(shell [ -f /usr/local/lib/libre$(LIB_SUFFIX) ] \
+	&& echo "/usr/local/lib")
+endif
+ifeq ($(LIBRE_SO),)
+LIBRE_SO  := $(shell [ -f /usr/lib/libre$(LIB_SUFFIX) ] && echo "/usr/lib")
+endif
+ifeq ($(LIBRE_SO),)
+LIBRE_SO  := $(shell [ -f /usr/lib64/libre$(LIB_SUFFIX) ] && echo "/usr/lib64")
+endif
+
+
+###############################################################################
+#
+# Clang section
+#
+
+CLANG_OPTIONS := -Iinclude -I$(LIBRE_INC) $(CFLAGS)
+CLANG_IGNORE  :=
+CLANG_SRCS    += $(filter-out $(CLANG_IGNORE), $(patsubst %,src/%,$(SRCS)))
+
+clang:
+	@clang --analyze $(CLANG_OPTIONS) $(CLANG_SRCS)
+	@rm -f *.plist
+
+
+###############################################################################
+#
+# Documentation section
+#
+DOX_DIR=../$(PROJECT)-dox
+DOX_TAR=$(PROJECT)-dox-$(VERSION)
+
+$(DOX_DIR):
+	@mkdir $@
+
+$(DOX_DIR)/Doxyfile: mk/Doxyfile Makefile
+	@cp $< $@
+	@perl -pi -e 's/PROJECT_NUMBER\s*=.*/PROJECT_NUMBER = $(VERSION)/' \
+	$(DOX_DIR)/Doxyfile
+
+.PHONY:
+dox:	$(DOX_DIR) $(DOX_DIR)/Doxyfile
+	@doxygen $(DOX_DIR)/Doxyfile 2>&1 | grep -v DEBUG_ ; true
+	@cd .. && rm -f $(DOX_TAR).tar.gz && \
+	tar -zcf $(DOX_TAR).tar.gz $(PROJECT)-dox > /dev/null && \
+	echo "Doxygen docs in `pwd`/$(DOX_TAR).tar.gz"
diff --git a/mk/win32/re.vcxproj b/mk/win32/re.vcxproj
new file mode 100644
index 0000000..e70f904
--- /dev/null
+++ b/mk/win32/re.vcxproj
@@ -0,0 +1,332 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup Label="ProjectConfigurations">

+    <ProjectConfiguration Include="Debug|Win32">

+      <Configuration>Debug</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+    <ProjectConfiguration Include="Release|Win32">

+      <Configuration>Release</Configuration>

+      <Platform>Win32</Platform>

+    </ProjectConfiguration>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="..\..\include\re.h" />

+    <ClInclude Include="..\..\include\re_aes.h" />

+    <ClInclude Include="..\..\include\re_base64.h" />

+    <ClInclude Include="..\..\include\re_bfcp.h" />

+    <ClInclude Include="..\..\include\re_bitv.h" />

+    <ClInclude Include="..\..\include\re_conf.h" />

+    <ClInclude Include="..\..\include\re_crc32.h" />

+    <ClInclude Include="..\..\include\re_dbg.h" />

+    <ClInclude Include="..\..\include\re_dns.h" />

+    <ClInclude Include="..\..\include\re_fmt.h" />

+    <ClInclude Include="..\..\include\re_hash.h" />

+    <ClInclude Include="..\..\include\re_hmac.h" />

+    <ClInclude Include="..\..\include\re_http.h" />

+    <ClInclude Include="..\..\include\re_httpauth.h" />

+    <ClInclude Include="..\..\include\re_ice.h" />

+    <ClInclude Include="..\..\include\re_jbuf.h" />

+    <ClInclude Include="..\..\include\re_json.h" />

+    <ClInclude Include="..\..\include\re_list.h" />

+    <ClInclude Include="..\..\include\re_lock.h" />

+    <ClInclude Include="..\..\include\re_main.h" />

+    <ClInclude Include="..\..\include\re_mbuf.h" />

+    <ClInclude Include="..\..\include\re_md5.h" />

+    <ClInclude Include="..\..\include\re_mem.h" />

+    <ClInclude Include="..\..\include\re_mod.h" />

+    <ClInclude Include="..\..\include\re_mqueue.h" />

+    <ClInclude Include="..\..\include\re_msg.h" />

+    <ClInclude Include="..\..\include\re_natbd.h" />

+    <ClInclude Include="..\..\include\re_net.h" />

+    <ClInclude Include="..\..\include\re_odict.h" />

+    <ClInclude Include="..\..\include\re_rtp.h" />

+    <ClInclude Include="..\..\include\re_sa.h" />

+    <ClInclude Include="..\..\include\re_sdp.h" />

+    <ClInclude Include="..\..\include\re_sha.h" />

+    <ClInclude Include="..\..\include\re_sip.h" />

+    <ClInclude Include="..\..\include\re_sipevent.h" />

+    <ClInclude Include="..\..\include\re_sipreg.h" />

+    <ClInclude Include="..\..\include\re_sipsess.h" />

+    <ClInclude Include="..\..\include\re_srtp.h" />

+    <ClInclude Include="..\..\include\re_stun.h" />

+    <ClInclude Include="..\..\include\re_sys.h" />

+    <ClInclude Include="..\..\include\re_tcp.h" />

+    <ClInclude Include="..\..\include\re_telev.h" />

+    <ClInclude Include="..\..\include\re_tls.h" />

+    <ClInclude Include="..\..\include\re_tmr.h" />

+    <ClInclude Include="..\..\include\re_turn.h" />

+    <ClInclude Include="..\..\include\re_types.h" />

+    <ClInclude Include="..\..\include\re_udp.h" />

+    <ClInclude Include="..\..\include\re_uri.h" />

+    <ClInclude Include="..\..\include\re_websock.h" />

+    <ClInclude Include="..\..\src\bfcp\bfcp.h" />

+    <ClInclude Include="..\..\src\dns\dns.h" />

+    <ClInclude Include="..\..\src\ice\ice.h" />

+    <ClInclude Include="..\..\src\main\main.h" />

+    <ClInclude Include="..\..\src\md5\md5.h" />

+    <ClInclude Include="..\..\src\mod\mod_internal.h" />

+    <ClInclude Include="..\..\src\mqueue\mqueue.h" />

+    <ClInclude Include="..\..\src\rtp\rtcp.h" />

+    <ClInclude Include="..\..\src\sa\sa.h" />

+    <ClInclude Include="..\..\src\sdp\sdp.h" />

+    <ClInclude Include="..\..\src\sipevent\sipevent.h" />

+    <ClInclude Include="..\..\src\sipsess\sipsess.h" />

+    <ClInclude Include="..\..\src\sip\sip.h" />

+    <ClInclude Include="..\..\src\srtp\srtp.h" />

+    <ClInclude Include="..\..\src\stun\stun.h" />

+    <ClInclude Include="..\..\src\turn\turnc.h" />

+  </ItemGroup>

+  <ItemGroup>

+    <ClCompile Include="..\..\src\aes\stub.c" />

+    <ClCompile Include="..\..\src\base64\b64.c" />

+    <ClCompile Include="..\..\src\bfcp\attr.c" />

+    <ClCompile Include="..\..\src\bfcp\conn.c" />

+    <ClCompile Include="..\..\src\bfcp\msg.c" />

+    <ClCompile Include="..\..\src\bfcp\reply.c" />

+    <ClCompile Include="..\..\src\bfcp\request.c" />

+    <ClCompile Include="..\..\src\conf\conf.c" />

+    <ClCompile Include="..\..\src\crc32\crc32.c" />

+    <ClCompile Include="..\..\src\dbg\dbg.c" />

+    <ClCompile Include="..\..\src\dns\client.c" />

+    <ClCompile Include="..\..\src\dns\cstr.c" />

+    <ClCompile Include="..\..\src\dns\dname.c" />

+    <ClCompile Include="..\..\src\dns\hdr.c" />

+    <ClCompile Include="..\..\src\dns\ns.c" />

+    <ClCompile Include="..\..\src\dns\rr.c" />

+    <ClCompile Include="..\..\src\dns\rrlist.c" />

+    <ClCompile Include="..\..\src\dns\win32\srv.c" />

+    <ClCompile Include="..\..\src\fmt\ch.c" />

+    <ClCompile Include="..\..\src\fmt\hexdump.c" />

+    <ClCompile Include="..\..\src\fmt\pl.c" />

+    <ClCompile Include="..\..\src\fmt\print.c" />

+    <ClCompile Include="..\..\src\fmt\prm.c" />

+    <ClCompile Include="..\..\src\fmt\regex.c" />

+    <ClCompile Include="..\..\src\fmt\str.c" />

+    <ClCompile Include="..\..\src\fmt\str_error.c" />

+    <ClCompile Include="..\..\src\fmt\time.c" />

+    <ClCompile Include="..\..\src\fmt\unicode.c" />

+    <ClCompile Include="..\..\src\hash\func.c" />

+    <ClCompile Include="..\..\src\hash\hash.c" />

+    <ClCompile Include="..\..\src\hmac\hmac.c" />

+    <ClCompile Include="..\..\src\hmac\hmac_sha1.c" />

+    <ClCompile Include="..\..\src\httpauth\basic.c" />

+    <ClCompile Include="..\..\src\httpauth\digest.c" />

+    <ClCompile Include="..\..\src\http\auth.c" />

+    <ClCompile Include="..\..\src\http\client.c" />

+    <ClCompile Include="..\..\src\http\msg.c" />

+    <ClCompile Include="..\..\src\http\server.c" />

+    <ClCompile Include="..\..\src\ice\cand.c" />

+    <ClCompile Include="..\..\src\ice\candpair.c" />

+    <ClCompile Include="..\..\src\ice\chklist.c" />

+    <ClCompile Include="..\..\src\ice\comp.c" />

+    <ClCompile Include="..\..\src\ice\connchk.c" />

+    <ClCompile Include="..\..\src\ice\ice.c" />

+    <ClCompile Include="..\..\src\ice\icem.c" />

+    <ClCompile Include="..\..\src\ice\icesdp.c" />

+    <ClCompile Include="..\..\src\ice\icestr.c" />

+    <ClCompile Include="..\..\src\ice\stunsrv.c" />

+    <ClCompile Include="..\..\src\ice\util.c" />

+    <ClCompile Include="..\..\src\jbuf\jbuf.c" />

+    <ClCompile Include="..\..\src\json\decode.c" />

+    <ClCompile Include="..\..\src\json\decode_odict.c" />

+    <ClCompile Include="..\..\src\json\encode.c" />

+    <ClCompile Include="..\..\src\list\list.c" />

+    <ClCompile Include="..\..\src\lock\win32\lock.c" />

+    <ClCompile Include="..\..\src\main\init.c" />

+    <ClCompile Include="..\..\src\main\main.c" />

+    <ClCompile Include="..\..\src\main\method.c" />

+    <ClCompile Include="..\..\src\mbuf\mbuf.c" />

+    <ClCompile Include="..\..\src\md5\md5.c" />

+    <ClCompile Include="..\..\src\md5\wrap.c" />

+    <ClCompile Include="..\..\src\mem\mem.c" />

+    <ClCompile Include="..\..\src\mod\mod.c" />

+    <ClCompile Include="..\..\src\mod\win32\dll.c" />

+    <ClCompile Include="..\..\src\mqueue\mqueue.c" />

+    <ClCompile Include="..\..\src\mqueue\win32\pipe.c" />

+    <ClCompile Include="..\..\src\msg\ctype.c" />

+    <ClCompile Include="..\..\src\msg\param.c" />

+    <ClCompile Include="..\..\src\natbd\filtering.c" />

+    <ClCompile Include="..\..\src\natbd\genalg.c" />

+    <ClCompile Include="..\..\src\natbd\hairpinning.c" />

+    <ClCompile Include="..\..\src\natbd\lifetime.c" />

+    <ClCompile Include="..\..\src\natbd\mapping.c" />

+    <ClCompile Include="..\..\src\natbd\natstr.c" />

+    <ClCompile Include="..\..\src\net\if.c" />

+    <ClCompile Include="..\..\src\net\net.c" />

+    <ClCompile Include="..\..\src\net\netstr.c" />

+    <ClCompile Include="..\..\src\net\rt.c" />

+    <ClCompile Include="..\..\src\net\sock.c" />

+    <ClCompile Include="..\..\src\net\sockopt.c" />

+    <ClCompile Include="..\..\src\net\win32\wif.c" />

+    <ClCompile Include="..\..\src\odict\entry.c" />

+    <ClCompile Include="..\..\src\odict\odict.c" />

+    <ClCompile Include="..\..\src\odict\type.c" />

+    <ClCompile Include="..\..\src\rtp\fb.c" />

+    <ClCompile Include="..\..\src\rtp\member.c" />

+    <ClCompile Include="..\..\src\rtp\ntp.c" />

+    <ClCompile Include="..\..\src\rtp\pkt.c" />

+    <ClCompile Include="..\..\src\rtp\rr.c" />

+    <ClCompile Include="..\..\src\rtp\rtcp.c" />

+    <ClCompile Include="..\..\src\rtp\rtp.c" />

+    <ClCompile Include="..\..\src\rtp\sdes.c" />

+    <ClCompile Include="..\..\src\rtp\sess.c" />

+    <ClCompile Include="..\..\src\rtp\source.c" />

+    <ClCompile Include="..\..\src\sa\ntop.c" />

+    <ClCompile Include="..\..\src\sa\printaddr.c" />

+    <ClCompile Include="..\..\src\sa\pton.c" />

+    <ClCompile Include="..\..\src\sa\sa.c" />

+    <ClCompile Include="..\..\src\sdp\attr.c" />

+    <ClCompile Include="..\..\src\sdp\format.c" />

+    <ClCompile Include="..\..\src\sdp\media.c" />

+    <ClCompile Include="..\..\src\sdp\msg.c" />

+    <ClCompile Include="..\..\src\sdp\session.c" />

+    <ClCompile Include="..\..\src\sdp\str.c" />

+    <ClCompile Include="..\..\src\sdp\util.c" />

+    <ClCompile Include="..\..\src\sha\sha1.c" />

+    <ClCompile Include="..\..\src\sipevent\listen.c" />

+    <ClCompile Include="..\..\src\sipevent\msg.c" />

+    <ClCompile Include="..\..\src\sipevent\notify.c" />

+    <ClCompile Include="..\..\src\sipevent\subscribe.c" />

+    <ClCompile Include="..\..\src\sipreg\reg.c" />

+    <ClCompile Include="..\..\src\sipsess\accept.c" />

+    <ClCompile Include="..\..\src\sipsess\ack.c" />

+    <ClCompile Include="..\..\src\sipsess\close.c" />

+    <ClCompile Include="..\..\src\sipsess\connect.c" />

+    <ClCompile Include="..\..\src\sipsess\info.c" />

+    <ClCompile Include="..\..\src\sipsess\listen.c" />

+    <ClCompile Include="..\..\src\sipsess\modify.c" />

+    <ClCompile Include="..\..\src\sipsess\reply.c" />

+    <ClCompile Include="..\..\src\sipsess\request.c" />

+    <ClCompile Include="..\..\src\sipsess\sess.c" />

+    <ClCompile Include="..\..\src\sip\addr.c" />

+    <ClCompile Include="..\..\src\sip\auth.c" />

+    <ClCompile Include="..\..\src\sip\contact.c" />

+    <ClCompile Include="..\..\src\sip\cseq.c" />

+    <ClCompile Include="..\..\src\sip\ctrans.c" />

+    <ClCompile Include="..\..\src\sip\dialog.c" />

+    <ClCompile Include="..\..\src\sip\keepalive.c" />

+    <ClCompile Include="..\..\src\sip\keepalive_udp.c" />

+    <ClCompile Include="..\..\src\sip\msg.c" />

+    <ClCompile Include="..\..\src\sip\reply.c" />

+    <ClCompile Include="..\..\src\sip\request.c" />

+    <ClCompile Include="..\..\src\sip\sip.c" />

+    <ClCompile Include="..\..\src\sip\strans.c" />

+    <ClCompile Include="..\..\src\sip\transp.c" />

+    <ClCompile Include="..\..\src\sip\via.c" />

+    <ClCompile Include="..\..\src\srtp\misc.c" />

+    <ClCompile Include="..\..\src\srtp\replay.c" />

+    <ClCompile Include="..\..\src\srtp\srtcp.c" />

+    <ClCompile Include="..\..\src\srtp\srtp.c" />

+    <ClCompile Include="..\..\src\srtp\stream.c" />

+    <ClCompile Include="..\..\src\stun\addr.c" />

+    <ClCompile Include="..\..\src\stun\attr.c" />

+    <ClCompile Include="..\..\src\stun\ctrans.c" />

+    <ClCompile Include="..\..\src\stun\dnsdisc.c" />

+    <ClCompile Include="..\..\src\stun\hdr.c" />

+    <ClCompile Include="..\..\src\stun\ind.c" />

+    <ClCompile Include="..\..\src\stun\keepalive.c" />

+    <ClCompile Include="..\..\src\stun\msg.c" />

+    <ClCompile Include="..\..\src\stun\rep.c" />

+    <ClCompile Include="..\..\src\stun\req.c" />

+    <ClCompile Include="..\..\src\stun\stun.c" />

+    <ClCompile Include="..\..\src\stun\stunstr.c" />

+    <ClCompile Include="..\..\src\sys\daemon.c" />

+    <ClCompile Include="..\..\src\sys\endian.c" />

+    <ClCompile Include="..\..\src\sys\fs.c" />

+    <ClCompile Include="..\..\src\sys\rand.c" />

+    <ClCompile Include="..\..\src\sys\sleep.c" />

+    <ClCompile Include="..\..\src\sys\sys.c" />

+    <ClCompile Include="..\..\src\tcp\tcp.c" />

+    <ClCompile Include="..\..\src\tcp\tcp_high.c" />

+    <ClCompile Include="..\..\src\telev\telev.c" />

+    <ClCompile Include="..\..\src\tmr\tmr.c" />

+    <ClCompile Include="..\..\src\turn\chan.c" />

+    <ClCompile Include="..\..\src\turn\perm.c" />

+    <ClCompile Include="..\..\src\turn\turnc.c" />

+    <ClCompile Include="..\..\src\udp\mcast.c" />

+    <ClCompile Include="..\..\src\udp\udp.c" />

+    <ClCompile Include="..\..\src\uri\ucmp.c" />

+    <ClCompile Include="..\..\src\uri\uri.c" />

+    <ClCompile Include="..\..\src\uri\uric.c" />

+  </ItemGroup>

+  <ItemGroup>

+    <None Include="..\..\src\srtp\README" />

+  </ItemGroup>

+  <PropertyGroup Label="Globals">

+    <ProjectName>re-win32</ProjectName>

+    <ProjectGuid>{40B28DF6-4B4A-411A-9EB7-8D80C2A29B9D}</ProjectGuid>

+    <Keyword>Win32Proj</Keyword>

+    <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <PlatformToolset>v140</PlatformToolset>

+    <CharacterSet>MultiByte</CharacterSet>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">

+    <ConfigurationType>StaticLibrary</ConfigurationType>

+    <PlatformToolset>v140</PlatformToolset>

+    <CharacterSet>MultiByte</CharacterSet>

+  </PropertyGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

+  <ImportGroup Label="ExtensionSettings">

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">

+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />

+  </ImportGroup>

+  <PropertyGroup Label="UserMacros" />

+  <PropertyGroup>

+    <_ProjectFileVersion>14.0.25123.0</_ProjectFileVersion>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <OutDir>..\..\$(Platform)\$(Configuration)\bin\</OutDir>

+    <IntDir>..\..\$(Platform)\$(Configuration)\tmp\mk\win32\</IntDir>

+  </PropertyGroup>

+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <OutDir>..\..\$(Platform)\$(Configuration)\bin\</OutDir>

+    <IntDir>..\..\$(Platform)\$(Configuration)\tmp\mk\win32\</IntDir>

+  </PropertyGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+    <ClCompile>

+      <Optimization>Disabled</Optimization>

+      <InlineFunctionExpansion>Default</InlineFunctionExpansion>

+      <AdditionalIncludeDirectories>..\..\include;..\..\..\misc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <PreprocessorDefinitions>WIN32;_CONSOLE;HAVE_INET_PTON;HAVE_INET_NTOP;FD_SETSIZE=1024;HAVE_SELECT;HAVE_IO_H;_CRT_SECURE_NO_DEPRECATE;WIN32_LEAN_AND_MEAN;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <MinimalRebuild>true</MinimalRebuild>

+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>

+      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>

+      <PrecompiledHeader />

+      <WarningLevel>Level3</WarningLevel>

+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>

+      <DisableSpecificWarnings>4142;%(DisableSpecificWarnings)</DisableSpecificWarnings>

+      <ObjectFileName>$(IntDir)%(RelativeDir)%(Filename).obj</ObjectFileName>

+    </ClCompile>

+    <Lib>

+      <AdditionalOptions>Iphlpapi.lib %(AdditionalOptions)</AdditionalOptions>

+      <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

+    </Lib>

+  </ItemDefinitionGroup>

+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">

+    <ClCompile>

+      <AdditionalIncludeDirectories>..\..\include;..\..\..\misc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>

+      <PreprocessorDefinitions>WIN32;_CONSOLE;HAVE_INET_PTON;HAVE_INET_NTOP;FD_SETSIZE=1024;HAVE_SELECT;HAVE_IO_H;_CRT_SECURE_NO_DEPRECATE;WIN32_LEAN_AND_MEAN;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>

+      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>

+      <PrecompiledHeader />

+      <WarningLevel>Level3</WarningLevel>

+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>

+      <DisableSpecificWarnings>4142;%(DisableSpecificWarnings)</DisableSpecificWarnings>

+      <ObjectFileName>$(IntDir)%(RelativeDir)%(Filename).obj</ObjectFileName>

+    </ClCompile>

+    <Lib>

+      <AdditionalDependencies>ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>

+    </Lib>

+  </ItemDefinitionGroup>

+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

+  <ImportGroup Label="ExtensionTargets">

+  </ImportGroup>

+</Project>
\ No newline at end of file
diff --git a/mk/win32/re.vcxproj.filters b/mk/win32/re.vcxproj.filters
new file mode 100644
index 0000000..27a35cf
--- /dev/null
+++ b/mk/win32/re.vcxproj.filters
@@ -0,0 +1,875 @@
+<?xml version="1.0" encoding="utf-8"?>

+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

+  <ItemGroup>

+    <Filter Include="include">

+      <UniqueIdentifier>{24ec5e26-1680-4fb0-8766-02a6834e676d}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src">

+      <UniqueIdentifier>{f97cb0a3-607e-4302-a41d-cbac8aad6bd7}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\uri">

+      <UniqueIdentifier>{57a0561c-ea6e-45d0-a034-72d1fabd97ca}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\udp">

+      <UniqueIdentifier>{974b5b66-04cf-4237-9e6c-f706acb078bd}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\turn">

+      <UniqueIdentifier>{0115caca-c0eb-469d-9f51-1a8a53a4cf36}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\tmr">

+      <UniqueIdentifier>{e46ff0a0-f978-4356-8103-804f228ce65d}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\telev">

+      <UniqueIdentifier>{7f1f0174-24be-4049-bccd-c03c00e5bacc}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\tcp">

+      <UniqueIdentifier>{b277177e-4cd2-4028-8e24-b12237bd4122}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sys">

+      <UniqueIdentifier>{d1a8c49e-d20f-4bca-ab49-7dd50593c09a}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\stun">

+      <UniqueIdentifier>{469bd25d-3ebd-474b-b13c-6914bfa44f2e}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\srtp">

+      <UniqueIdentifier>{793d3b1b-a4a5-49a7-aeb4-fc3be5944d3b}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sipsess">

+      <UniqueIdentifier>{da8a92af-e8a6-45c6-9708-aa18e3adb084}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sipreg">

+      <UniqueIdentifier>{5d4ea0d3-afee-4f12-8a79-ac4c8447777a}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sipevent">

+      <UniqueIdentifier>{ed8fd6a9-58aa-47c4-b1f7-34e1ac182b87}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sip">

+      <UniqueIdentifier>{e29353b1-55db-453e-91c6-f7f37748147c}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sdp">

+      <UniqueIdentifier>{f3ce68eb-55bb-46b2-8d3f-1b1048fad972}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sa">

+      <UniqueIdentifier>{c6620f98-9fd7-45ea-9b58-cc2c4a3b6f2d}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\rtp">

+      <UniqueIdentifier>{60bd6b3a-4f71-48fb-a161-10ce29910d93}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\odict">

+      <UniqueIdentifier>{8643b7af-6ec5-43b4-b0fe-399a79d445cc}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\net">

+      <UniqueIdentifier>{f7c75b83-f284-430c-b18c-b2633914a750}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\net\win32">

+      <UniqueIdentifier>{779e44ed-0935-450c-a3dd-7bdef53a1179}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\natbd">

+      <UniqueIdentifier>{1bff8dd5-d220-4f10-8c26-64c82522d824}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\msg">

+      <UniqueIdentifier>{9ea33625-0411-4065-a16b-ce3f49d3ca15}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mqueue">

+      <UniqueIdentifier>{955109b7-ec66-49d3-b4cf-0ba816e095e4}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mqueue\win32">

+      <UniqueIdentifier>{31d6e0d5-7c9d-4ca7-a911-4be6b45291b0}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mod">

+      <UniqueIdentifier>{249dc72a-9cb9-45fa-bdd1-742fafb1d831}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mod\win32">

+      <UniqueIdentifier>{e6d208f2-2ef2-49bc-a13a-d66885a1dd61}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mem">

+      <UniqueIdentifier>{fc6552c5-e5cd-4f77-9daa-77361089d71f}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\md5">

+      <UniqueIdentifier>{eb84b7a5-764a-43c4-98b1-90c989cbe8e7}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\mbuf">

+      <UniqueIdentifier>{09180e07-9646-454c-ae1a-7bfdc9ec96cc}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\main">

+      <UniqueIdentifier>{4d08218c-9027-430b-bec4-5b435620ca77}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\lock">

+      <UniqueIdentifier>{3489e5fe-f25d-4410-a351-8c485609a49a}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\lock\win32">

+      <UniqueIdentifier>{c33fec0f-9764-431d-9fe3-46704e850f6b}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\list">

+      <UniqueIdentifier>{fb912922-9084-4a6a-b36f-cf7039fbdf59}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\json">

+      <UniqueIdentifier>{bf38bff6-d13b-40e9-908f-73aa6bd29dc2}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\jbuf">

+      <UniqueIdentifier>{8723551b-d33a-464f-b15e-d477b65d8d34}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\ice">

+      <UniqueIdentifier>{c9915c2b-1f49-45bc-9552-8679bd697f23}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\httpauth">

+      <UniqueIdentifier>{c8b66d98-2787-4b05-be8c-d4acd28dbf9e}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\http">

+      <UniqueIdentifier>{ac3c7db7-cb2d-4191-9c45-f499de912f51}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\hmac">

+      <UniqueIdentifier>{9a795fdf-efaf-4ea1-b7c7-671616e84f0a}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\hash">

+      <UniqueIdentifier>{2af593ee-1fa6-44c1-b6ca-01d437c39397}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\fmt">

+      <UniqueIdentifier>{37c6bc4f-8fd1-40cf-b04c-77ae5d7f80c6}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\dns">

+      <UniqueIdentifier>{6aae1e31-0191-4c51-a470-c43be58ae837}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\dns\win32">

+      <UniqueIdentifier>{f029350a-d256-4dda-889b-430f65615047}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\dbg">

+      <UniqueIdentifier>{c1c4b382-5196-45dc-9185-1b321a34caa2}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\crc32">

+      <UniqueIdentifier>{7590d26c-f92a-4da7-89be-857b74649099}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\conf">

+      <UniqueIdentifier>{394be8ad-8a7d-4ed8-93a5-cf4a1c9f5c37}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\bfcp">

+      <UniqueIdentifier>{26df0238-b37e-4c97-97d4-549f23a4fb1b}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\aes">

+      <UniqueIdentifier>{3f9bcd72-2513-4e1e-826e-6df1e9c3fa3e}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\base64">

+      <UniqueIdentifier>{7a203acf-4223-4b71-8705-995eac29db75}</UniqueIdentifier>

+    </Filter>

+    <Filter Include="src\sha">

+      <UniqueIdentifier>{5bb58e89-4183-4380-993a-d01d1bc3d9d9}</UniqueIdentifier>

+    </Filter>

+  </ItemGroup>

+  <ItemGroup>

+    <ClInclude Include="..\..\include\re.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_aes.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_base64.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_bfcp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_bitv.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_conf.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_crc32.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_dbg.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_dns.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_fmt.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_hash.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_hmac.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_http.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_httpauth.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_ice.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_jbuf.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_json.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_list.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_lock.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_main.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_mbuf.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_md5.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_mem.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_mod.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_mqueue.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_msg.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_natbd.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_net.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_odict.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_rtp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sa.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sdp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sha.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sip.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sipevent.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sipreg.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sipsess.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_srtp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_stun.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_sys.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_tcp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_telev.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_tls.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_tmr.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_turn.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_types.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_udp.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_uri.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\include\re_websock.h">

+      <Filter>include</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\turn\turnc.h">

+      <Filter>src\turn</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\stun\stun.h">

+      <Filter>src\stun</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\srtp\srtp.h">

+      <Filter>src\srtp</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\sipsess\sipsess.h">

+      <Filter>src\sipsess</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\sipevent\sipevent.h">

+      <Filter>src\sipevent</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\sip\sip.h">

+      <Filter>src\sip</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\sdp\sdp.h">

+      <Filter>src\sdp</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\sa\sa.h">

+      <Filter>src\sa</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\rtp\rtcp.h">

+      <Filter>src\rtp</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\mqueue\mqueue.h">

+      <Filter>src\mqueue</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\mod\mod_internal.h">

+      <Filter>src\mod</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\md5\md5.h">

+      <Filter>src\md5</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\main\main.h">

+      <Filter>src\main</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\ice\ice.h">

+      <Filter>src\ice</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\dns\dns.h">

+      <Filter>src\dns</Filter>

+    </ClInclude>

+    <ClInclude Include="..\..\src\bfcp\bfcp.h">

+      <Filter>src\bfcp</Filter>

+    </ClInclude>

+  </ItemGroup>

+  <ItemGroup>

+    <ClCompile Include="..\..\src\uri\ucmp.c">

+      <Filter>src\uri</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\uri\uri.c">

+      <Filter>src\uri</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\uri\uric.c">

+      <Filter>src\uri</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\udp\mcast.c">

+      <Filter>src\udp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\udp\udp.c">

+      <Filter>src\udp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\turn\chan.c">

+      <Filter>src\turn</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\turn\perm.c">

+      <Filter>src\turn</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\turn\turnc.c">

+      <Filter>src\turn</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\tmr\tmr.c">

+      <Filter>src\tmr</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\telev\telev.c">

+      <Filter>src\telev</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\tcp\tcp.c">

+      <Filter>src\tcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\tcp\tcp_high.c">

+      <Filter>src\tcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\daemon.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\endian.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\fs.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\rand.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\sleep.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sys\sys.c">

+      <Filter>src\sys</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\addr.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\attr.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\ctrans.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\dnsdisc.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\hdr.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\ind.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\keepalive.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\msg.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\rep.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\req.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\stun.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\stun\stunstr.c">

+      <Filter>src\stun</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\srtp\misc.c">

+      <Filter>src\srtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\srtp\replay.c">

+      <Filter>src\srtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\srtp\srtcp.c">

+      <Filter>src\srtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\srtp\srtp.c">

+      <Filter>src\srtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\srtp\stream.c">

+      <Filter>src\srtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\accept.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\ack.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\close.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\connect.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\info.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\listen.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\modify.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\reply.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\request.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipsess\sess.c">

+      <Filter>src\sipsess</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipreg\reg.c">

+      <Filter>src\sipreg</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipevent\listen.c">

+      <Filter>src\sipevent</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipevent\msg.c">

+      <Filter>src\sipevent</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipevent\notify.c">

+      <Filter>src\sipevent</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sipevent\subscribe.c">

+      <Filter>src\sipevent</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\addr.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\auth.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\contact.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\cseq.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\ctrans.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\dialog.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\keepalive.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\keepalive_udp.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\msg.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\reply.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\request.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\sip.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\strans.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\transp.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sip\via.c">

+      <Filter>src\sip</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\attr.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\format.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\media.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\msg.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\session.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\str.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sdp\util.c">

+      <Filter>src\sdp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sa\ntop.c">

+      <Filter>src\sa</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sa\printaddr.c">

+      <Filter>src\sa</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sa\pton.c">

+      <Filter>src\sa</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sa\sa.c">

+      <Filter>src\sa</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\fb.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\member.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\ntp.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\pkt.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\rr.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\rtcp.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\rtp.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\sdes.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\sess.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\rtp\source.c">

+      <Filter>src\rtp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\odict\entry.c">

+      <Filter>src\odict</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\odict\odict.c">

+      <Filter>src\odict</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\odict\type.c">

+      <Filter>src\odict</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\if.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\net.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\netstr.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\rt.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\sock.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\sockopt.c">

+      <Filter>src\net</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\net\win32\wif.c">

+      <Filter>src\net\win32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\filtering.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\genalg.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\hairpinning.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\lifetime.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\mapping.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\natbd\natstr.c">

+      <Filter>src\natbd</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\msg\ctype.c">

+      <Filter>src\msg</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\msg\param.c">

+      <Filter>src\msg</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mqueue\mqueue.c">

+      <Filter>src\mqueue</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mqueue\win32\pipe.c">

+      <Filter>src\mqueue\win32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mod\mod.c">

+      <Filter>src\mod</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mod\win32\dll.c">

+      <Filter>src\mod\win32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mem\mem.c">

+      <Filter>src\mem</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\md5\md5.c">

+      <Filter>src\md5</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\md5\wrap.c">

+      <Filter>src\md5</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\mbuf\mbuf.c">

+      <Filter>src\mbuf</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\main\init.c">

+      <Filter>src\main</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\main\main.c">

+      <Filter>src\main</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\main\method.c">

+      <Filter>src\main</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\lock\win32\lock.c">

+      <Filter>src\lock\win32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\list\list.c">

+      <Filter>src\list</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\json\decode.c">

+      <Filter>src\json</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\json\decode_odict.c">

+      <Filter>src\json</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\json\encode.c">

+      <Filter>src\json</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\jbuf\jbuf.c">

+      <Filter>src\jbuf</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\cand.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\candpair.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\chklist.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\comp.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\connchk.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\ice.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\icem.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\icesdp.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\icestr.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\stunsrv.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\ice\util.c">

+      <Filter>src\ice</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\httpauth\basic.c">

+      <Filter>src\httpauth</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\httpauth\digest.c">

+      <Filter>src\httpauth</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\http\auth.c">

+      <Filter>src\http</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\http\client.c">

+      <Filter>src\http</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\http\msg.c">

+      <Filter>src\http</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\http\server.c">

+      <Filter>src\http</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\hmac\hmac.c">

+      <Filter>src\hmac</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\hmac\hmac_sha1.c">

+      <Filter>src\hmac</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\hash\func.c">

+      <Filter>src\hash</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\hash\hash.c">

+      <Filter>src\hash</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\ch.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\hexdump.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\pl.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\print.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\prm.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\regex.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\str.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\str_error.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\time.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\fmt\unicode.c">

+      <Filter>src\fmt</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\client.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\cstr.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\dname.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\hdr.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\ns.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\rr.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\rrlist.c">

+      <Filter>src\dns</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dns\win32\srv.c">

+      <Filter>src\dns\win32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\dbg\dbg.c">

+      <Filter>src\dbg</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\crc32\crc32.c">

+      <Filter>src\crc32</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\conf\conf.c">

+      <Filter>src\conf</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\bfcp\attr.c">

+      <Filter>src\bfcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\bfcp\conn.c">

+      <Filter>src\bfcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\bfcp\msg.c">

+      <Filter>src\bfcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\bfcp\reply.c">

+      <Filter>src\bfcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\bfcp\request.c">

+      <Filter>src\bfcp</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\aes\stub.c">

+      <Filter>src\aes</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\base64\b64.c">

+      <Filter>src\base64</Filter>

+    </ClCompile>

+    <ClCompile Include="..\..\src\sha\sha1.c">

+      <Filter>src\sha</Filter>

+    </ClCompile>

+  </ItemGroup>

+  <ItemGroup>

+    <None Include="..\..\src\srtp\README">

+      <Filter>src\srtp</Filter>

+    </None>

+  </ItemGroup>

+</Project>
\ No newline at end of file