path: root/HACKING
diff options
authorMarcel Holtmann <>2008-10-17 06:51:32 +0200
committerMarcel Holtmann <>2008-10-17 06:51:32 +0200
commit65819b820f763785206ce6b053ae5ad03cfbbdff (patch)
tree612b1795f762ccb48eff60f001e2e7f5f9fbe0d0 /HACKING
parente12170a1242177b4acd357390b812ecdc32792f3 (diff)
Add simple development/hacking introduction
Diffstat (limited to 'HACKING')
1 files changed, 83 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 00000000..9e0adec2
--- /dev/null
@@ -0,0 +1,83 @@
+Hacking on Connection Manager
+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://
+ # cd connman
+ 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
+Generating source code documentation
+The source code is annotated using the gtk-doc style documentation. This
+allows an easy way of generating API documentation. The "bootstrap-configure"
+script will use the "--enable-gtk-doc" configure to enable the generation of
+the documentation.
+To make the gtk-doc process work, the gtk-doc tools need to be installed.
+Every distribution should provide a package for this, but the naming of the
+package might be different:
+ Ubuntu/Debian
+ # apt-get install gtk-doc-utils
+ Fedora
+ # yum install gtk-doc
+In case "bootstrap-configure" is not used, the manual steps for generating
+the documentation files are like this:
+ Configuring the repository
+ # ./configure --enable-gtk-doc
+ Generate the documentation
+ # cd doc && make
+ View documentation
+ # firefox doc/html/index.html