summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-10-17 06:51:32 +0200
committerMarcel Holtmann <marcel@holtmann.org>2008-10-17 06:51:32 +0200
commit65819b820f763785206ce6b053ae5ad03cfbbdff (patch)
tree612b1795f762ccb48eff60f001e2e7f5f9fbe0d0
parente12170a1242177b4acd357390b812ecdc32792f3 (diff)
downloadconnman-65819b820f763785206ce6b053ae5ad03cfbbdff.tar.gz
connman-65819b820f763785206ce6b053ae5ad03cfbbdff.tar.bz2
connman-65819b820f763785206ce6b053ae5ad03cfbbdff.zip
Add simple development/hacking introduction
-rw-r--r--HACKING83
1 files changed, 83 insertions, 0 deletions
diff --git a/HACKING b/HACKING
new file mode 100644
index 00000000..9e0adec2
--- /dev/null
+++ b/HACKING
@@ -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://git.moblin.org/projects/connman.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