Changeset 927


Ignore:
Timestamp:
Feb 2, 2007 8:49:33 PM (14 years ago)
Author:
bennylp
Message:

Updated README.txt with the latest build instructions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/README.txt

    r787 r927  
     1 
    12 
    23Getting Started: Building and Using PJSIP and PJMEDIA 
    34 
    4    [Last Update: $Date: 2006-10-21 19:14:22 +0100 (Sat, 21 Oct 2006) $] 
    5  
     5   [Last Update: $Date: 2007-02-02 20:42:44 +0000 (Fri, 02 Feb 2007) $] 
     6 
     7                                                   Print Friendly Page 
    68     _________________________________________________________________ 
    79 
     
    1820          applications, and samples: 
    1921 
    20            $ ./configure 
    21            $ make dep && make clean && make 
     22   $ ./configure 
     23   $ make dep && make clean && make 
    2224 
    2325   Building Win32 Target with Microsoft Visual Studio 
    2426          Generally we can just do these steps: 
    2527 
    26          1. Open pjsip-apps/build/pjsip_apps.dsw workspace, 
    27          2. Create an empty pjlib/include/pj/config_site.h, and 
    28          3. build the pjsua application. 
     28         1. Visual Studio 6: open pjproject.dsw workspace, 
     29         2. Visual Studio 2005: open pjproject-vs8.sln solution, 
     30         3. Create an empty pjlib/include/pj/config_site.h, and 
     31         4. build the pjsua application. 
    2932 
    3033   Building for Windows Mobile 
     
    3538         3. build the pjsua_wince application. 
    3639 
     40   Invoking Older Build System (e.g. for RTEMS) 
     41          Generally these should be all that are needed to build the libraries, 
     42          applications, and samples: 
     43 
     44   $ ./configure-legacy 
     45   $ make dep && make clean && make 
     46 
    3747   Locating Output Binaries/Libraries 
    3848          Libraries will be put in lib directory, and binaries will be put in 
     
    4151   Running the Applications 
    4252          After successful build, you can try running pjsua application on 
    43           pjsip-apps/bin     directory.     PJSUA     manual     is    in 
    44           http://www.pjsip.org/pjsua.htm. 
     53          pjsip-apps/bin   directory.   PJSUA  manual  can  be  found  in 
     54          http://www.pjsip.org/pjsua.htm page. 
    4555 
    4656 
     
    91101     5.2 Building the Projects 
    92102 
    93    6. Using PJPROJECT with Applications 
     103   6. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS) 
     104 
     105     6.1 Supported Targets 
     106 
     107     6.2 Invoking the Build System 
     108 
     109   7. Running the Applications 
     110 
     111     7.1 pjsua 
     112 
     113     7.2 Sample Applications 
     114 
     115     7.3 pjlib-test 
     116 
     117     7.4 pjsip-test 
     118 
     119   8. Using PJPROJECT with Applications 
    94120 
    95121 
     
    374400     * GNU binutils for the target, and 
    375401     * GNU gcc for the target. 
     402     * OpenSSL header files/libraries (optional) if TLS support is wanted. 
    376403 
    377404   In addition, the appropriate "SDK" must be installed for the particular 
     
    385412     * FreeBSD (must use gmake instead of make) 
    386413 
    387    Building Win32 applications with cygwin is currently not supported (there is 
    388    some Windows header conflicts), but cross-compilations might just work. 
     414   Building Win32 applications with Cygwin is currently not supported by the 
     415   autoconf script (there is some Windows header conflicts), but one can still 
     416   use the old configure script by calling ./configure-legacy. More over, 
     417   cross-compilations might also work with Cygwin. 
    389418 
    390419 
     
    420449   ... 
    421450   Optional Features: 
    422    --disable-floating-point   Disable floating point where possible 
    423    --disable-sound            Exclude sound (i.e. use null sound) 
    424    --disable-small-filter     Exclude small filter in resampling 
    425    --disable-large-filter     Exclude large filter in resampling 
    426    --disable-g711-plc         Exclude G.711 Annex A PLC 
    427    --disable-speex-aec        Exclude Speex Acoustic Echo Canceller/AEC 
    428    --disable-g711-codec       Exclude G.711 codecs from the build 
    429    --disable-l16-codec        Exclude Linear/L16 codec family from the build 
    430    --disable-gsm-codec        Exclude GSM codec in the build 
    431    --disable-speex-codec      Exclude Speex codecs in the build 
    432    --disable-ilbc-codec       Exclude iLBC codec in the build 
    433    ...                        
     451   --disable-floating-point     Disable floating point where possible 
     452   --disable-sound              Exclude sound (i.e. use null sound) 
     453   --disable-small-filter       Exclude small filter in resampling 
     454   --disable-large-filter       Exclude large filter in resampling 
     455   --disable-g711-plc           Exclude G.711 Annex A PLC 
     456   --disable-speex-aec          Exclude Speex Acoustic Echo Canceller/AEC 
     457   --disable-g711-codec         Exclude G.711 codecs from the build 
     458   --disable-l16-codec          Exclude Linear/L16 codec family from the build 
     459   --disable-gsm-codec          Exclude GSM codec in the build 
     460   --disable-speex-codec        Exclude Speex codecs in the build 
     461   --disable-ilbc-codec         Exclude iLBC codec in the build 
     462   --disable-tls Force excluding TLS support (default is autodetected based on 
     463   OpenSSL availability) 
     464   ... 
    434465 
    435466    Configuring Debug Version and Other Customizations 
     
    444475   $ ./configure CFLAGS="-O3 -DNDEBUG -msoft-float -fno-builtin" 
    445476   ... 
     477 
     478    Configuring TLS Support 
     479 
     480   By default, TLS support is configured based on the availability of OpenSSL 
     481   header files and libraries. If OpenSSL is available at the default include 
     482   and library path locations, TLS will be enabled by the configure script. 
     483 
     484   You  can explicitly disable TLS support by giving the configure script 
     485   --disable-tls option. 
    446486 
    447487 
     
    531571     * Microsoft Visual Studio .NET 2002, 
    532572     * Microsoft Visual Studio .NET 2003, 
    533      * Microsoft Visual C++ Express 2005 with Platform SDK, 
    534      * DirectX SDK is needed if PJMEDIA DirectSound sound backend is explicitly 
    535        choosen (default is using PortAudio, which uses DirectSound via run-time 
    536        bindings, so DirectX SDK is not needed) 
     573     * Microsoft Visual C++ 2005 (including Express edition), 
     574 
     575   In addition, the following SDK's are needed: 
     576     * Platform SDK, if you're using Visual Studio 2005 Express (tested with 
     577       Platform SDK for Windows Server 2003 SP1), 
     578     * DirectX SDK (tested with DirectX version 8 and 9), 
     579     * OpenSSL development kit would be needed if TLS support is wanted, or 
     580       otherwise this is optional. 
    537581 
    538582   For the host, the following are required: 
    539583     * Windows NT, 2000, XP, 2003, or later , 
    540584     * Windows 95/98 should work too, but this has not been tested, 
    541      * Sufficient amount of RAM for the build process. 
     585     * Sufficient amount of RAM for the build process (at least 256MB). 
     586 
     587 
     588    Enabling TLS Support with OpenSSL 
     589 
     590   If  TLS  support  is wanted, then OpenSSL SDK must be installed in the 
     591   development host. 
     592 
     593   To install OpenSSL SDK from the Win32 binary distribution: 
     594    1. Install OpenSSL SDK to any folder (e.g. C:\OpenSSL) 
     595    2. Add OpenSSL DLL location to the system PATH. 
     596    3. Add OpenSSL include path to Visual Studio includes search directory. 
     597       Make sure that OpenSSL header files can be accessed from the program 
     598       with #include <openssl/ssl.h> construct. 
     599    4. Add OpenSSL library path to Visual Studio library search directory. Make 
     600       sure the following libraries are accessible: 
     601          + For Debug build: libeay32MTd and ssleay32MTd. 
     602          + For Release build: libeay32MT and ssleay32MT. 
     603 
     604   Then to enable TLS transport support in PJSIP, just add 
     605 
     606     #define PJSIP_HAS_TLS_TRANSPORT 1 
     607 
     608   in your pj/config_site.h. When this macro is defined, OpenSSL libraries will 
     609   be automatically linked to the application via the #pragma construct in 
     610   sip_transport_tls_ossl.c file. 
    542611 
    543612 
     
    547616   Follow the steps below to build the libraries/application using Visual 
    548617   Studio: 
    549     1. Open Visual Studio 6 workspace file pjsip-apps/build/pjsip_apps.dsw. If 
    550        later version of Visual Studio is being used, it should convert the 
    551        workspace file and project files into the new formats. 
    552     2. Set pjsua as Active Project. 
    553     3. Select Debug or Release build as appropriate. 
    554     4. Build the project. This will build pjsua application and all libraries 
     618    1. For Visual Studio 6: open pjproject.dsw workspace file. 
     619    2. For Visual Studio 8 (VS 2005): open pjproject-vs8.sln solution file. 
     620    3. Set pjsua as Active Project. 
     621    4. Select Debug or Release build as appropriate. 
     622    5. Build the project. This will build pjsua application and all libraries 
    555623       needed by pjsua. 
    556     5. After  successful  build,  the pjsua application will be placed in 
     624    6. After  successful  build,  the pjsua application will be placed in 
    557625       pjsip-apps/bin directory, and the libraries in lib directory under each 
    558626       projects. 
     
    636704 
    637705 
    638 6. Using PJPROJECT with Applications 
     7066. Older PJLIB Build System for Non-Autoconf Targets (e.g. RTEMS) 
     707     _________________________________________________________________ 
     708 
     709   The old PJLIB build system can still be used for building PJ libraries, for 
     710   example for RTEMS target. Please see the Porting PJLIB page in PJLIB 
     711   Reference documentation for information on how to support new target using 
     712   this build system. 
     713 
     714  6.1 Supported Targets 
     715     _________________________________________________________________ 
     716 
     717   The older build system supports building PJ libraries for the following 
     718   operating systems: 
     719     * RTEMS 
     720     * Linux 
     721     * MacOS X 
     722     * Cygwin and Mingw 
     723 
     724   And it supports the following target architectures: 
     725     * i386, x86_64, itanium 
     726     * ARM 
     727     * mips 
     728     * powerpc 
     729     * mpc860 
     730     * etc. 
     731 
     732   For other targets, specific files need to be added to the build system, 
     733   please see the Porting PJLIB page in PJLIB Reference documentation for 
     734   details. 
     735 
     736  6.2 Invoking the Build System 
     737     _________________________________________________________________ 
     738 
     739   To invoke the older build system, run the following: 
     740 
     741 
     742 
     743   $ cd pjproject 
     744   $ ./configure-legacy 
     745   $ make dep && make clean && make 
     746 
     747 
     748 
     7497. Running the Applications 
     750     _________________________________________________________________ 
     751 
     752   Upon successful build, the output libraries (PJLIB, PJLIB-UTIL, PJMEDIA, 
     753   PJSIP, etc.) are put under ./lib sub-directory under each project directory. 
     754   In addition, some applications may also be built, and such applications will 
     755   be put in ./bin sub-directory under each project directory. 
     756 
     757 
     758  7.1 pjsua 
     759     _________________________________________________________________ 
     760 
     761   pjsua is the reference implementation for both PJSIP and PJMEDIA stack, and 
     762   is  the  main target of the build system. Upon successful build, pjsua 
     763   application will be put in pjsip-apps/bin directory. 
     764 
     765   pjsua manual can be found in pjsua Manual Page. 
     766 
     767 
     768  7.2 Sample Applications 
     769     _________________________________________________________________ 
     770 
     771   Sample applications will be built with the Makefile build system. For Visual 
     772   Studio, you have to build the samples manually by selecting and building the 
     773   Samples project inside pjsip-apps/build/pjsip_apps.dsw project workspace. 
     774 
     775   Upon   successful   build,   the   sample   applications  are  put  in 
     776   pjsip-apps/bin/samples directory. 
     777 
     778   The  sample applications are described in PJMEDIA Samples Page and 
     779   PJSIP Samples Page in the website. 
     780 
     781 
     782  7.3 pjlib-test 
     783     _________________________________________________________________ 
     784 
     785   pjlib-test contains comprehensive tests for testing PJLIB functionality. 
     786   This application will only be built when the Makefile build system is used; 
     787   with  Visual  Studio, one has to open pjlib.dsw project in pjlib/build 
     788   directory to build this application. 
     789 
     790   If  you're  porting PJLIB to new target, it is recommended to run this 
     791   application to make sure that all functionalities works as expected. 
     792 
     793 
     794  7.4 pjsip-test 
     795     _________________________________________________________________ 
     796 
     797   pjsip-test contains codes for testing various SIP functionalities in PJSIP 
     798   and also to benchmark static performance metrics such as message parsing per 
     799   second. 
     800 
     801 
     802 
     8038. Using PJPROJECT with Applications 
    639804     _________________________________________________________________ 
    640805 
Note: See TracChangeset for help on using the changeset viewer.