GithubHelp home page GithubHelp logo

jhcloos / resiprocate Goto Github PK

View Code? Open in Web Editor NEW

This project forked from resiprocate/resiprocate

78.0 19.0 4.0 75.19 MB

C++ implementation of SIP, ICE, TURN and related protocols

Home Page: https://www.resiprocate.org

License: Other

Makefile 1.88% HTML 0.50% M4 0.57% C++ 60.38% Objective-C 0.04% Roff 0.17% Shell 1.49% Perl 1.88% C 28.73% Awk 0.02% XSLT 0.01% Batchfile 0.01% QMake 0.02% Tcl 0.01% C# 3.22% Assembly 0.07% OpenEdge ABL 0.19% XS 0.55% PHP 0.25% CSS 0.03%

resiprocate's Introduction

-----------------------------------------------------------

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

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


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.