Last Update: 2005/05/28 for pjproject-0.2.8 BUILD INSTRUCTIONS ================================================================================ The main target of the build process is to build executable pjsip/bin/pjsua.exe. 1. Build instructions for Microsoft Visual Studio .NET 2003 ---------------------------------------------- - Open solution file: build/pjproject.sln There will be some dialogs appear asking about Source Safe, just ignore it. - Build the solution. That should build every single projects in pjproject. 2. Build instructions for Microsoft Visual Studio 6 ------------------------------------------------ Note: MSVC6 workspace is normally updated less often than MSVC7.1 projects. Especially during intermediate release. Normally the status will be noted in the web page. - Open workspace file: build/pjproject.dsw - Perform batch build. That should build every single projects in pjproject. 3. Build instructions for Linux i386, Mingw ---------------------------------------- Note: mingw/Linux Makefiles are normally updated less often than MSVC7.1 projects. Step-by-step instruction to build the whole thing: $ tar xzvf pjproject-0.2.6.tar.gz $ cd pjproject-0.2.6 $ export TARGET=mingw <== for Mingw, or $ export TARGET=linux-i386 <== for Linux $ make dep $ make all That should build all libraries and test applications (including pjsua). There are some other make targets: $ make clean ==> clean files (except libraries, binaries, & dependency files). $ make realclean ==> clean everything $ make distclean ==> ditto. Note: - pjsua for Mingw and Linux build doesn't have audio device at present. 4. Additional flags (for debugging etc.) ------------------------------------- The build system for mingw/Linux accepts can additional flags, for example for debugging. Example: $ (on pjproject root directory) $ make CFLAGS=-ggdb "LDFLAGS=-L/foo/lib -lfoo" REDUCING SIZE ================================================================================ There are some C macros that can be used to reduce the size. For Mingw and Linux build, these macros are activated if you specify MINSIZE=1 during make, e.g.: $ .. (we're in pjproject directory) .. $ make MINSIZE=1 all Then after building the projects, you can check the size of the libraries: $ make size If you use Microsoft Visual Studio, then you'll have to set the C macros manually: pjlib/src/pj/config.h: - #define PJ_HAS_TCP 0 // ==> to exclude TCP - #define PJ_HAS_THREADS 0 // ==> to exclude threads - #define PJ_FUNCTIONS_ARE_INLINED 0 // ==> do not inline. pjlib/src/pj/log.h: - #define PJ_LOG_MAX_LEVEL 0 // ==> disable all tracing GENERATING DOCUMENTATION ================================================================================ You need to have doxygen to generate documentation. To generate doxygen documentation with GNU make, $ (on pjproject root directory) $ make doc If GNU make is not available, generate documentation on each project: $ cd pjsip $ doxygen docs/doxygen.cfg $ cd pjlib $ doxygen docs/doxygen.cfg etc.. The HTML files will be put under docs/html directory. That's about it I guess, sorry couldn't write more. Feel free to drop me a note if you encounter any problems. Thanks, Benny Prijono