Add g_dbus_add_service_watch() implementation
[platform/upstream/connman.git] / HACKING
1 Hacking on Connection Manager
2 *****************************
3
4
5 Working with the source code repository
6 =======================================
7
8 The repository contains two extra scripts that accomplish the bootstrap
9 process. One is called "bootstrap" which is the basic scripts that uses the
10 autotools scripts to create the needed files for building and installing.
11 It makes sure to call the right programs depending on the usage of shared or
12 static libraries or translations etc.
13
14 The second program is called "bootstrap-configure". This program will make
15 sure to properly clean the repository, call the "bootstrap" script and then
16 call configure with proper settings for development. It will use the best
17 options and pass them over to configure. These options normally include
18 the enabling the maintainer mode and the debugging features.
19
20 So while in a normal source project the call "./configure ..." is used to
21 configure the project with its settings like prefix and extra options. In
22 case of bare repositories call "./bootstrap-configure" and it will bootstrap
23 the repository and calls configure with all the correct options to make
24 development easier.
25
26 In case of preparing for a release with "make distcheck", don't use
27 bootstrap-configure since it could export development specific settings.
28
29 So the normal steps to checkout, build and install such a repository is
30 like this:
31
32   Checkout repository
33     # git-clone git://git.moblin.org/projects/connman.git
34     # cd connman
35
36   Configure and build
37     # ./bootstrap-configure
38     # make
39
40   Check installation
41     # make install DESTDIR=$PWD/x
42     # find x
43     # rm -rf x
44
45   Check distribution
46     # make distcheck
47
48   Final installation
49     # sudo make install
50
51   Remove autogenerated files
52     # make maintainer-clean
53
54
55 Generating source code documentation
56 ====================================
57
58 The source code is annotated using the gtk-doc style documentation. This
59 allows an easy way of generating API documentation. The "bootstrap-configure"
60 script will use the "--enable-gtk-doc" configure to enable the generation of
61 the documentation.
62
63 To make the gtk-doc process work, the gtk-doc tools need to be installed.
64 Every distribution should provide a package for this, but the naming of the
65 package might be different:
66
67   Ubuntu/Debian
68     # apt-get install gtk-doc-utils
69
70   Fedora
71     # yum install gtk-doc
72
73 In case "bootstrap-configure" is not used, the manual steps for generating
74 the documentation files are like this:
75
76   Configuring the repository
77     # ./configure --enable-gtk-doc
78
79   Generate the documentation
80     # cd doc && make
81
82   View documentation
83     # firefox doc/html/index.html