Signed-off-by: Naresh Mehta <nareshtechs(a)gmail.com>
HACKING | 102 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 102 insertions(+), 0 deletions(-)
create mode 100644 HACKING
diff --git a/HACKING b/HACKING
new file mode 100644
@@ -0,0 +1,102 @@
+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
+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
+ 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
+automatically includes this option.
+ Run phonesim in foreground using the following options
+ # ./src/phonesim -p 12345 -gui xml/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.