blob: 8316ed5aa185fd13d4fedc840b06e77a7460d2ad [file] [log] [blame]
Hacking on phonesim
*******************
phonesim is a soft modem that eliminates the need to have an actual AT
modem connected to the system for testing and developing 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
QT development libraries (libqt4-dev) are also required for building
phonesim. It is recommended to install the QT 4 development tools package
(qt4-dev-tools) as an alternative if available with your distribution.
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/phonesim.git
# cd phonesim
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 "phonesim". The "bootstrap-configure"
automatically includes this option.
Run phonesim in foreground using the following options
# ./src/phonesim -p 12345 -gui src/default.xml
Check your modem.conf file and enable the phonesim configuration before
executing the above command. Argument -p should be followed by the proper
port number, in case you have changed the default "12345". Argument -gui
will launch the gui once the modem is enabled.
To enable the modem, make sure the ofono daemon is running and execute the
enable-modem script with /phonesim argument (default defined in modem.conf,
change if changes to that section has been made). The AT chat can then
be seen in the GUI window. Running the script disable-modem with /phonesim
argument will turn off the soft modem.
The default.xml can be tweaked further to include additional AT-Commands and
supposed responses from the soft modem.
For production installations or distribution packaging it is important that
the "--enable-maintainer-mode" option is NOT used.