pjproject/INSTALL.txt

133 lines
4.0 KiB
Plaintext

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>