Changes between Initial Version and Version 1 of Getting-Started/Download-Source


Ignore:
Timestamp:
Apr 28, 2009 1:02:36 PM (15 years ago)
Author:
ismangil
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Getting-Started/Download-Source

    v1 v1  
     1== Getting the Source Code Distribution == 
     2 
     3All libraries (PJLIB, PJLIB-UTIL, PJSIP, PJMEDIA, and PJMEDIA-CODEC) are currently distributed under a single source tree, collectively named as PJPROJECT or just PJ libraries. These libraries can be obtained by either downloading the release tarball or getting them from the Subversion trunk. 
     4 
     5  
     61.1 Getting the Release tarball 
     7 
     8Getting the released tarball, in ZIP or TGZ format, is a convenient way to obtain stable version of PJPROJECT. The tarball may not contain the latest features or bug-fixes, but normally it is considered more stable as each will be tested more rigorously before released. 
     9 
     10The latest released tarball can be downloaded from the http://www.pjsip.org/download.htm. 
     11 
     12  
     131.2 Getting from Subversion trunk 
     14 
     15PJPROJECT Subversion repository will always contain the latest/most up-to-date version of the sources. Normally the Subversion repository is always kept in a "good" state. However, there's always a chance that things break and the tree doesn't build correctly (particularly for the "not-so-popular" targets), so please consult the mailing list should there be any problems. 
     16 
     17Using Subversion also has benefits of keeping the local copy of the source up to date with the main PJ source tree and to easily track the changes made to the local copy, if any. 
     18 
     19  
     20What is Subversion 
     21 
     22Subversion (SVN) is Open Source version control system similar to CVS. Subversion homepage is in http://subversion.tigris.org/ 
     23 
     24  
     25Getting Subversion Client 
     26 
     27A Subversion (SVN) client is needed to download the PJ source files from pjsip.org SVN tree. SVN client binaries can be downloaded from http://subversion.tigris.org/, and the program should be available for Windows, Linux, MacOS X, and many more platforms. 
     28 
     29  
     30Getting the Source for The First Time 
     31 
     32Once Subversion client is installed, the following commands can be used to initially retrieve the latest sources from the Subversion trunk: 
     33 
     34         
     35 
     36$ svn co http://svn.pjsip.org/repos/pjproject/trunk pjproject 
     37$ cd pjproject 
     38 
     39  
     40Keeping The Local Copy Up-to-Date 
     41 
     42Once sources have been downloaded, we can keep the local copy up to date by periodically synchronizing the local source with the latest revision from the PJ's Subversion trunk. The mailing list provides best source of information about the availability of new updates in the trunk. 
     43 
     44To update the local copy with the latest changes in the main PJ's repository: 
     45 
     46         
     47 
     48$ cd pjproject 
     49$ svn update 
     50 
     51  
     52Tracking Local and Remote Changes 
     53 
     54To see what files have been changed locally: 
     55 
     56         
     57 
     58$ cd pjproject 
     59$ svn status 
     60 
     61The above command only compares local file against the original local copy, so it doesn't require Internet connection while performing the check. 
     62 
     63To see both what files have been changed locally and what files have been updated in the PJ's Subversion repository: 
     64 
     65         
     66 
     67$ cd pjproject 
     68$ svn status -u 
     69 
     70Note that this command requires active Internet connection to query the status of PJPROJECT's source repository. 
     71 
     72  
     731.3 Source Directories Layout 
     74Top-Level Directory Layout 
     75 
     76The top-level directories (denoted as $TOP here) in the source distribution contains the following sub-directories: 
     77 
     78$TOP/build 
     79 
     80    Contains makefiles that are common for all projects. 
     81$TOP/build.symbian 
     82 
     83    Contains MMP files for building Symbian target. 
     84$TOP/pjlib 
     85 
     86    Contains header and source files of PJLIB. PJLIB is the base portability and framework library which is used by all other libraries 
     87$TOP/pjlib-util 
     88 
     89    Contains PJLIB-UTIL header and source files. PJLIB-UTIL is an auxiliary library that contains utility functions such as scanner, XML, STUN, MD5 algorithm, getopt() implementation, etc. 
     90$TOP/pjnath 
     91 
     92    Contains PJNATH header and source files. PJNATH contains STUN, TURN, and ICE implementation. 
     93$TOP/pjmedia 
     94 
     95    Contains PJMEDIA and PJMEDIA-CODEC header and source files. The sources of various codecs (such as GSM, Speex, and iLBC) can be found under this directory. 
     96$TOP/pjsip 
     97 
     98    Contains PJSIP header and source files. This library is the SIP protocol stack implementation. 
     99$TOP/pjsip-apps 
     100 
     101    Contains source code for PJSUA and various sample applications, including the Python wrapper. 
     102$TOP/third_party 
     103 
     104    Contains source code for various third party libraries, such as Speex, iLBC, and GSM codecs. 
     105 
     106  
     107Individual Directory Inside Each Project 
     108 
     109Each library directory further contains these sub-directories: 
     110 
     111bin 
     112 
     113    Contains binaries produced by the build process. 
     114build 
     115 
     116    Contains build scripts/makefiles, project files, project workspace, etc. to build the project. In particular, it contains one Makefile file to build the project with GNU build systems, and a *.dsw workspace file to build the library with Microsoft Visual Studio 6 or later. 
     117build/output 
     118 
     119    The build/output directory contains the object files and other files generated by the build process. To support building multiple targets with a single source tree, each build target will occupy a different subdirectory under this directory. 
     120build/wince-evc4 
     121 
     122    This directory contains the project/workspace files to build Windows CE/WinCE version of the project using Microsoft Embedded Visual C++ 4. 
     123build/wince-evc4/output 
     124 
     125    This directory contains the library, executable, and object files generated by Windows Mobile build process. 
     126docs 
     127 
     128    Contains Doxygen configuration file (doxygen.cfg) to generate online documentation from the source files. The output documentation will be put in this directory as well (for example, docs/html directory for the HTML files). 
     129 
     130    (to generate Doxygen documentation from the source tree, just run "doxygen docs/doxygen.cfg" in the individual project directory. The generated files will reside in docs directory). 
     131include 
     132 
     133    Contains the header files for the project. 
     134lib 
     135 
     136    Contains libraries produced by the build process. 
     137src 
     138 
     139    Contains the source files of the project. 
     140