1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
The 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
1) Edit resip/stack/Makefile
2) Add Foo.cxx to the SRC list
Example: Adding a new file Bar.cxx to rutil
1) Edit rutil/Makefile
2) 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
|