mirror of
https://gitlab.linphone.org/BC/public/linphone-iphone.git
synced 2026-01-17 11:08:06 +00:00
106 lines
4.7 KiB
Text
106 lines
4.7 KiB
Text
LINPHONE ON ARM-LINUX (HANDHELD COMPUTERS)
|
|
******************************************
|
|
|
|
The console version of linphone works on arm-linux and has been tested on ipaqs
|
|
under the familiar linux distribution (http://www.handhelds.org).
|
|
You can find .ipk binary packages on the linphone's download page.
|
|
If you want to build your own arm-linux packages, here are some instructions to
|
|
cross compile linphone and its dependencies: readline, speex and libosip.
|
|
This is my own experience on cross compiling software. As there is no precise
|
|
step by step documentation (as far as I know) on how to cross-compile on arm,
|
|
there is no guaranty that the following instructions are the best way to do it.
|
|
First, be aware that only the console version of linphone can compile on ARM.
|
|
|
|
|
|
* You need the lastest arm toolchain from http://www.handhelds.org. Uncompress it in / .
|
|
It contains all the cross-compilation tools. Be sure that the arm-linux-gcc binaries
|
|
are in your PATH (export PATH=$PATH:/usr/local/arm/3.4.1/bin/ , for example)
|
|
* create within your home directory a arm/ directory, copy into it the fresh
|
|
tarballs of libosip2>=2.2.x, speex>=1.1.6, linphone>=1.2.1 readline>=5.1 and ncurses>=5.5 (readline needs ncurses)
|
|
Uncompress all these
|
|
tarballs.
|
|
|
|
|
|
Very important things common to all packages being cross compiled:
|
|
******************************************************************
|
|
* copy the ipaq-config.site in the ipkg/ directory of linphone into some safe place,
|
|
for example: ~/ipaq-config.site .
|
|
* You need a directory that we call ARM_INSTALL_TREE that will own files in the same way they will be installed on the target computer.
|
|
It is also used to build linphone over the arm binaries of its dependencies (speex,osip,ncurses,readline).
|
|
|
|
For example:
|
|
|
|
export CONFIG_SITE=~/ipaq-config.site
|
|
export ARM_INSTALL_TREE=/armbuild
|
|
|
|
|
|
Cross compiling ncurses for ARM:
|
|
********************************
|
|
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --with-shared
|
|
make
|
|
make install DESTDIR=$ARM_INSTALL_TREE
|
|
make install DESTDIR=`pwd`/armbuild
|
|
|
|
|
|
Cross compiling readline for ARM:
|
|
*********************************
|
|
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static
|
|
make
|
|
make install DESTDIR=$ARM_INSTALL_TREE
|
|
make install DESTDIR=`pwd`/armbuild
|
|
|
|
|
|
|
|
Cross compiling libosip for ARM:
|
|
********************************
|
|
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static
|
|
make
|
|
make install DESTDIR=$ARM_INSTALL_TREE
|
|
make install DESTDIR=`pwd`/armbuild
|
|
|
|
Cross compiling speex for ARM:
|
|
********************************
|
|
First you need to remove ogg headers from your build system to avoid a dirty conflict between
|
|
your build machine binaries and the arm binaries. They are usually in a libogg-dev package (rpm or deb).
|
|
Then:
|
|
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static --enable-fixed-point --enable-arm-asm
|
|
make
|
|
make install DESTDIR=$ARM_INSTALL_TREE
|
|
make install DESTDIR='pwd'/armbuild
|
|
|
|
|
|
Cross compiling linphone for ARM
|
|
********************************
|
|
First you need to remove all .la files from the ARM_INSTALL_TREE because it confuses libtool and makes
|
|
the linker use your build machine binaries instead of the arm-crosscompiled ones.
|
|
rm -f $ARM_INSTALL_TREE/usr/lib/*.la
|
|
#for some reason pkg-config doesn't like cross-compiling...
|
|
export PKG_CONFIG=/usr/bin/pkg-config
|
|
./configure --prefix=/usr --host=arm-linux --with-gnu-ld --disable-static \
|
|
--disable-glib --with-osip=$ARM_INSTALL_TREE/usr \
|
|
--with-readline=$ARM_INSTALL_TREE/usr \
|
|
SPEEX_CFLAGS="-I$ARM_INSTALL_TREE/usr/include" \
|
|
SPEEX_LIBS="-L$ARM_INSTALL_TREE/usr/lib -lspeex "
|
|
make
|
|
make install DESTDIR='pwd'/armbuild
|
|
|
|
You can use the install trees libosip2-x.x.x/armbuild speex-x.x.x/armbuild and
|
|
linphone-0.x.x/armbuild/ to make binary packages of
|
|
each software, as ipkgs for the familiar distribution (http://www.familiar.org).
|
|
In the ipkg/ directory of linphone you can find .control files for ipkg-build.
|
|
In order to make the osip ipkg, you have to do the following:
|
|
- create a directory named CONTROL inside libosip2-2.2.x/armbuild
|
|
- copy the libosip.control file into CONTROL/ and rename it into "control".
|
|
- edit the "control" file to adjust version number accordingly.
|
|
- remove the non essential parts of libosip inside libosip2-2.x.x/armbuild/usr/ : just
|
|
leave the lib/ directory. This saves space on the destination computer.
|
|
- then inside libosip2-2.x.x, run ipkg-build -o root -g root armbuild
|
|
The same procedure applies to make linphone's ipkg.
|
|
Binaries can also be stripped with arm-linux-strip to save more space.
|
|
|
|
Running linphone under the handheld computer
|
|
********************************************
|
|
|
|
You just have to start linphone from a terminal by typing 'linphonec'.
|
|
|
|
Simon
|