mirror of git://git.sysmocom.de/ofono
84 lines
2.7 KiB
Plaintext
84 lines
2.7 KiB
Plaintext
|
Hacking on oFono
|
||
|
****************
|
||
|
|
||
|
|
||
|
Build tools requirements
|
||
|
========================
|
||
|
|
||
|
When building and testing directly from the repository it is important to
|
||
|
have at least automake version 1.10 or later installed. All modern
|
||
|
distributions should default to the latest version, but it seems that
|
||
|
Debian's default is still an earlier version:
|
||
|
|
||
|
Check version
|
||
|
# dpkg -l '*automake*'
|
||
|
|
||
|
Install new version
|
||
|
# apt-get install automake1.10
|
||
|
# update-alternatives --config automake
|
||
|
|
||
|
|
||
|
Working with the source code repository
|
||
|
=======================================
|
||
|
|
||
|
The repository contains two extra scripts that accomplish the bootstrap
|
||
|
process. One is called "bootstrap" which is the basic scripts that uses the
|
||
|
autotools scripts to create the needed files for building and installing.
|
||
|
It makes sure to call the right programs depending on the usage of shared or
|
||
|
static libraries or translations etc.
|
||
|
|
||
|
The second program is called "bootstrap-configure". This program will make
|
||
|
sure to properly clean the repository, call the "bootstrap" script and then
|
||
|
call configure with proper settings for development. It will use the best
|
||
|
options and pass them over to configure. These options normally include
|
||
|
the enabling the maintainer mode and the debugging features.
|
||
|
|
||
|
So while in a normal source project the call "./configure ..." is used to
|
||
|
configure the project with its settings like prefix and extra options. In
|
||
|
case of bare repositories call "./bootstrap-configure" and it will bootstrap
|
||
|
the repository and calls configure with all the correct options to make
|
||
|
development easier.
|
||
|
|
||
|
In case of preparing for a release with "make distcheck", don't use
|
||
|
bootstrap-configure since it could export development specific settings.
|
||
|
|
||
|
So the normal steps to checkout, build and install such a repository is
|
||
|
like this:
|
||
|
|
||
|
Checkout repository
|
||
|
# git clone git://git.kernel.org/pub/scm/network/ofono/ofono.git
|
||
|
# cd ofono
|
||
|
|
||
|
Configure and build
|
||
|
# ./bootstrap-configure
|
||
|
# make
|
||
|
|
||
|
Check installation
|
||
|
# make install DESTDIR=$PWD/x
|
||
|
# find x
|
||
|
# rm -rf x
|
||
|
|
||
|
Check distribution
|
||
|
# make distcheck
|
||
|
|
||
|
Final installation
|
||
|
# sudo make install
|
||
|
|
||
|
Remove autogenerated files
|
||
|
# make maintainer-clean
|
||
|
|
||
|
|
||
|
Running from within the source code repository
|
||
|
==============================================
|
||
|
|
||
|
When using "./configure --enable-maintainer-mode" the automake scripts will
|
||
|
use the plugins directly from within the repository. This removes the need
|
||
|
to use "make install" when testing "ofonod". The "bootstrap-configure"
|
||
|
automatically includes this option.
|
||
|
|
||
|
Run daemon in foreground with debugging
|
||
|
# sudo ./src/ofonod -n -d
|
||
|
|
||
|
For production installations or distribution packaging it is important that
|
||
|
the "--enable-maintainer-mode" option is NOT used.
|