resiprocate
resiprocate copied to clipboard
C++ implementation of SIP, ICE, TURN and related protocols
IMPORTANT
-
the notes below relate to the legacy build system from reSIProcate <= 1.7.x
-
now, with reSIProcate 1.8.x and beyond, please see:
http://www.resiprocate.org/AutotoolsBuild
and
http://www.resiprocate.org/Configuration_Options
Notes for the legacy build system:
The legacy reSIProcate build system is derived from the VOCAL build system (http://www.vovida.org).
Adding New Files to a module
Example: Adding a new file Foo.cxx to the stack
- Edit resip/stack/Makefile
- Add Foo.cxx to the SRC list
Example: Adding a new file Bar.cxx to rutil
- Edit rutil/Makefile
- Add Bar.cxx to the SRC list
Notes:
- All files noted in SRC list will be added to the target library
- Adding a new header file does not need to be noted in the Makefile
- To add something to the compile line add to CXXFLAGS. e.g. CXXFLAGS += -DMYSPECIALDEFINE
- To add something to the link line add to LDFLAGS and/or LDLIBS e.g. LDFLAGS += -L/usr/local/myspeciallibdir e.g. LDLIBS += -lmyspeciallib
Creating an application based on the stack:
Option 1: (Using the resip build system) For example applications using the resip build system look at resip/stack/test or at repro.
###########################################################################################
Create a Makefile in the directory with the units with the following template
This should be the path to the build directory of resip (in the sip subdirectory)
BUILD = ../../build
Includes macros
include $(BUILD)/Makefile.pre
Add any options that need to be passed to the C++ compiler here
#CXXFLAGS += -DMYSPECIALDEFINE
Add any options that need to be passed to the C compiler here
#CFLAGS += -DMYOTHERDEFINE
Add any options that need to be passed to the linker here
#LDFLAGS += -L/usr/local/mydir
Add any libraries that need to be passed to the linker here
#LDLIBS += -lmylib
All of these packages are prerequisites for resiprocate
PACKAGES += RESIP RUTIL OPENSSL ARES PTHREAD
Add an entry to TESTPROGRAMS for each target that has a main in it
On linux this will generate an executable in bin.debug.Linux.i686/main
TESTPROGRAMS += main.cxx
Add each of the C++ or C files that other than the main
Each main target (from TESTPROGRAMS) will be linked with all of the files in SRC
SRC = TestSupport.cxx
Includes macros
include $(BUILD)/Makefile.post ###########################################################################################
Option 2: (Using a third party build system)
Prerequisites:
- Install ares library from contrib/ares
- cd contrib/ares
- ./configure
- make
- make install
Pass the following flags to C++ compiler: Assumptions:
- have pthreads
- have openssl installed
- have ares installed
- resiprocate library is built and installed
Linux Example
CXXFLAGS += -Wall -fPIC -Wno-deprecated -march=i686
-D_REENTRANT -DUSE_SSL -DNEW_MSG_HEADER_SCANNER -DUSE_IPV6 -DUSE_ARES
-I/usr/kerberos/include -I$(RESIP_DIR)/lib.debug.Linux.i686
LDFLAGS += -L$(RESIP_DIR)/lib.debug.Linux.i686
LDLIBS += -lresip -lrutil -lssl -lcrypto -lares -lpthread