~jamesodhunt/ubuntu/trusty/upstart/SRU-bugs-901038+1338637

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
The upstart source tree is available using Bazaar-NG with the
following URL, if you plan to hack on upstart please work off this
branch.

	http://bazaar.launchpad.net/~keybuk/upstart/main

Releases are available from:

	http://people.ubuntu.com/~scott/software/upstart/

upstart uses the Malone bug tracking system:

	http://launchpad.net/products/upstart/+bugs

If you want to contribute code or bug fixes, please either provide the
URL to your own Bazaar-NG branch or use the unified diff format
(diff -pu) and attach the patch to a bug.  Please supply a suggested
ChangeLog entry with your patch.


Maintainer tools
----------------

The source tree for upstart uses the GNU Build System (sometimes known
as the GNU Autotools).  You will need the following versions
installed.

	* GNU Autoconf 2.59
	* GNU Automake 1.9
	* GNU Libtool 1.5.22
	* GNU Gettext 0.14.5

After checking our upstart from Bazaar-NG you will need to use these
tools to generate the build files.  The correct way to do this is to
simply run autoreconf -i from the top-level source directory.


Configure options
-----------------

There are some configure script options that you may find useful when
hacking on upstart.

	* --enable-compiler-warnings: (GCC only) adds extra CFLAGS to
	increase the source checking and treat all warnings as errors.

	* --disable-compiler-optimisations: ensures that no compiler
	optimisations are performed during compilation, easing
	debugging.

	* --disable-linker-optimisations: disables the usual linker
	optimisations, slightly decreasing build time.

	* --enable-compiler-coverage: (GCC only) enables coverage file
	generation, useful for test suites.


Coding style
------------

The coding style for upstart is roughly K&R with function names in
column 0, and variable names aligned in declarations.

The right results can be almost acheived by doing the following.

	* GNU Emacs: if you're not using auto-newline, the following
	should do the right thing:

	(defun upstart-c-mode-common-hook ()
	  (c-set-style "k&r")
	  (setq indent-tabs-mode t
	        c-basic-offset 8))

	* VIM: the default works except for the case labels in switch
	statements.  Set the following option to fix that:

	setlocal cinoptions=:0

	* Indent: can be used to reformat code in a different style:

	indent -kr -i8 -psl