First gather the required sources:
- libav-0.7.1
- libeXosip2-3.5.0
- libogg-1.3.0
- libosip2-3.5.0
- libvorbis-1..3.2
- linphone-3.4.3
- ncurses-5.9
- readline-6.2
- SDL-1.2.14
- speex-1.2rc1
and extract them under a directory, say linphone. Then create a target output directory, say install. Your directory structure then will look like this:
To save tedious repetitive typing, prepare environmental variables
export PREFIX=/usr/local
export HOSTTPL=arm-none-linux-gnueabi
export INSTALLDIR=/home/user/linphone/install
These may vary on your situation. Most of the procedures for each library compilation basically consist of following three steps:
$ configure
$ make
$ make install
So we will just list the commands with arguments until the last step, which will requires some interventions. Before we start, we may need intltool package
$ sudo apt-get install intltool
Now, let's get started. We have a long way to go.
ncurses
We won't use gtk+ gui interface so we need this for better command line interface.
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-shared --with-gnu-ld
$ make
$ make install DESTDIR=$INSTALLDIR
Before going further, there is one thing you have to remember. As it is directed by the INSTALLDIR variable, the outputs will reside on the directory:
/home/user/linphone/install/usr/local
Under that directory you can find lib subdirectory where all the resulting libraries will populate. You can also find libtool archive files (*.la) there. Because we are doing cross compilation, these files usually contains wrong information so it should be deleted as soon as it is created. If you meet compilation error with strange library reference (looking for a library in the wrong place), then you should check the *.la files there.
readline
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --disable-static
$ make
$ make install DESTDIR=$INSTALLDIR
libosip2
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static
$ make
$ make install DESTDIR=$INSTALLDIR
libogg
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld
$ make
$ make install DESTDIR=$INSTALLDIR
libeXosip2
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static \
OSIP_CFLAGS="-I$INSTALLDIR//usr/local/include" \
OSIP_LIBS="-L$INSTALLDIR/usr/local/lib -losip2 -losipparser2"
$ make
$ make install DESTDIR=$INSTALLDIR
It is the good time to check the target library for the "la" files and delete them.
speex
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld --disable-static \
--enable-fixed-point --enable-arm-asm --with-ogg="$INSTALLDIR/usr/local"
$ make
$ make install DESTDIR=$INSTALLDIR
libav
$ ./configure --prefix=$PREFIX --enable-cross-compile \
--cross-prefix=arm-none-linux-gnueabi- \
--arch=armv6 --target-os=linux \
--disable-ffserver --disable-ffplay --disable-ffprobe
$ make
$ make install DESTDIR=$INSTALLDIR
There are a bunch of --enable-xxx and --disable-xxx options are there. You can spend some time to fine tune the options to minimize the size of the output.
SDL
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld
$ make
$ make install DESTDIR=$INSTALLDIR
libvorbis
$ ./configure --prefix=$PREFIX --host=$HOSTTPL --with-gnu-ld \
--with-ogg="$INSTALLDIR/usr/local"
$ make
$ make install DESTDIR=$INSTALLDIR
This comment has been removed by the author.
ReplyDeleteI have a problem on the configuration of libav :
ReplyDelete"arm-none-linux-gnueabi-gcc is unable to create an executable file
C compiler test failed "
I want to configure it for cortex-A7.