133 lines
4 KiB
Text
133 lines
4 KiB
Text
|
Last Update: 2005/05/28 for pjproject-0.2.8
|
||
|
|
||
|
|
||
|
COMMON PROBLEMS
|
||
|
=================
|
||
|
- make error
|
||
|
process_begin: CreateProcess((null), cl /c /nologo /DWIN32 /D_WIN32 /DPJ_GUID_TY
|
||
|
PE=PJ_GUID_COCREATEGUID /I../src ..\src\pj\ioqueue_winnt.c /Fooutput\pjlib_win32
|
||
|
_vc\ioqueue_winnt.o, ...) failed.
|
||
|
make (e=2): The system cannot find the file specified.
|
||
|
make[1]: *** [output/pjlib_win32_vc/ioqueue_winnt.o] Error 2
|
||
|
|
||
|
solution:
|
||
|
make doesn't like spaces in vc98 PATH
|
||
|
|
||
|
|
||
|
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
|
||
|
<bennylp@bulukucing.org>
|
||
|
|