87 lines
2.3 KiB
Text
87 lines
2.3 KiB
Text
|
|
|
|
|
|
Build Instructions for PJLIB/PJMEDIA/PJSIP RTEMS Port
|
|
|
|
|
|
|
|
The RTEMS port uses the POSIX abstraction layer at the moment, and has been
|
|
tested with RTEMS 4.6 on i386 target.
|
|
|
|
|
|
Building RTEMS
|
|
---------------
|
|
I use RTEMS 4.6 on a cygwin host with i386/pc386 as target, but I think it
|
|
should work with different RTEMS versions/hosts/targets.
|
|
|
|
RTEMS was built with the following commands:
|
|
|
|
$ /opt/src/rtems-4.6.6/configure --enable-cxx --enable-posix --enable-networking --enable-rdbg --enable-tests --enable-rtemsbsp=pc386 --target=i386-rtems
|
|
$ make
|
|
$ make install
|
|
|
|
|
|
Supported Targets
|
|
-----------------
|
|
At the moment, pjlib supports i386 and mpc860 CPU target. For other targets,
|
|
you would need to create/tweak the appropriate "m-xxx.mak" in "build" directory
|
|
and the corresponding "m_xxx.h" header file in "pj/compat" directory.
|
|
|
|
Please refer to pjlib porting guide about how to port PJLIB to new CPU target.
|
|
|
|
|
|
Building PJLIB/PJMEDIA/PJSIP
|
|
----------------------------
|
|
Use the following steps to build the libraries:
|
|
|
|
|
|
1. Set RTEMS_LIBRARY_PATH environment variable to point to your BSP directory
|
|
(which is <RTEMS INSTALLATION POINT>/<BOARD SUPPORT PACKAGE>).
|
|
|
|
For example (with sh):
|
|
|
|
$ export RTEMS_LIBRARY_PATH=/opt/rtems-4.6/i386-rtems/pc386
|
|
|
|
|
|
2. Unfortunately pjproject's configure script is unable to create "build.mak"
|
|
for cross compilation (but this may change in the future), so we need to
|
|
create "build.mak" manually.
|
|
|
|
The file "README-configure" has some info about the variables in "build.mak".
|
|
|
|
For example, the "build.mak" for i386 target:
|
|
|
|
export MACHINE_NAME := i386
|
|
export OS_NAME := rtems
|
|
export HOST_NAME := mingw
|
|
export CC_NAME := gcc
|
|
export TARGET_NAME := i386-rtems
|
|
export CROSS_COMPILE := i386-rtems-
|
|
|
|
|
|
3. Put additional CFLAGS or LDFLAGS that are specific to your target in
|
|
"user.mak".
|
|
|
|
For example, my "user.mak" looks like this:
|
|
|
|
export CFLAGS +=
|
|
export LDFLAGS += -Wl,-Ttext,0x00100000 -Wl,--defsym -Wl,HeapSize=0x400000
|
|
|
|
|
|
4. Build the libraries:
|
|
|
|
$ make dep && make distclean && make
|
|
|
|
|
|
5. That should be it. The libraries should be in "lib" directory and
|
|
applications in "bin" directory.
|
|
|
|
|
|
|
|
Acknowledgements
|
|
----------------
|
|
Many thanks for Phil Torre <ptorre at zetron dot com>, who did most of the
|
|
initial porting and testing with pjlib etc. All credits go to him.
|
|
|
|
|
|
|