summaryrefslogtreecommitdiffstats
path: root/HACKING
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel.holtmann@intel.com>2009-05-12 00:32:52 -0700
committerMarcel Holtmann <marcel.holtmann@intel.com>2009-05-12 00:32:52 -0700
commitf8610c675818451be613f573f9db8a85525d030b (patch)
tree32d1e59493d00c89cfa1b7594883a97586660ff0 /HACKING
parent50ff91e20914e05bfc93e880620b2280ddb82e9f (diff)
downloadofono-f8610c675818451be613f573f9db8a85525d030b.tar.bz2
Add development/hacking documentation
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING83
1 files changed, 83 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 00000000..2eb35bad
--- /dev/null
+++ b/HACKING
@@ -0,0 +1,83 @@
+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.