summaryrefslogtreecommitdiff
path: root/docs/reference/node-startup-controller/building.xml
blob: 3b4b08cf7f0028b06184064fb5a0b8e71ce0878c (plain)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
]>
<refentry id="building">
  <refmeta>
    <refentrytitle>Building</refentrytitle>
  </refmeta>

  <refnamediv>
    <refname>Building</refname>
    <refpurpose>How to build the Node Startup Controller</refpurpose>
  </refnamediv>

  <refsect1>
    <title>Build dependencies</title>
    <para>
      The following additional libraries are required to build the
      Node Startup Controller:
    </para>
    <variablelist>
      <varlistentry>
        <term>automotive-dlt >= 2.2.0</term>
      </varlistentry>
      <varlistentry>
        <term>glib-2.0 >= 2.2.0</term>
      </varlistentry>
      <varlistentry>
        <term>gio-2.0 >= 2.30.0</term>
      </varlistentry>
      <varlistentry>
        <term>gobject-2.0 >= 2.30.0</term>
      </varlistentry>
      <varlistentry>
        <term>libsystemd-daemon >= 183</term>
      </varlistentry>
    </variablelist>
    <para>
      In addition to this, and apart from standard tools like autoconf, automake
      and libtool, the following command-line utilities need to be available for
      building:
    </para>
    <itemizedlist>
      <listitem>gdbus-codegen</listitem>
      <listitem>
        gtkdocize and related GTK-Doc tools (only needed for building the
        reference manual)
      </listitem>
    </itemizedlist>
  </refsect1>
  <refsect1>
    <title>Build Instructions</title>
    <para>
      Building and installing the Node Startup Controller is done in the following
      3-4 steps:
    </para>
    <orderedlist>
      <listitem>
        <formalpara>
          <title>Preparing the source tree</title>
          <para>
            This step is only required when building from the git repository. It will
            prepare the tree for building the reference manual and will generate the
            final build scripts (<literal>configure</literal> and
            <literal>Makefile</literal> files) from the templates shipped along with the
            source code:
            <programlisting>./autogen.sh</programlisting>
          </para>
        </formalpara>
      </listitem>
      <listitem>
        <formalpara>
          <title>Checking dependencies and configuring the build</title>
          <para>
            Checking for build-time dependencies and tweaking various build options, such as the
            installation path etc. is done using the <literal>configure</literal> script, which
            is called as follows in the toplevel directory of the source tree:
            <programlisting>./configure [options]</programlisting>
            The following custom configuration options are available:
            <variablelist>
              <varlistentry>
                <term><literal>--enable-debug=&lt;yes|no&gt;</literal></term>
                <listitem>
                  <para>
                    Enables or disables debug builds. Enabling debugging will cause more
                    compiler warnings to be generated that are then treated as errors
                    and make the build fail. This is useful for catching problems during
                    development.
                  </para>
                  <para>
                    The default value is <literal>no</literal>.
                  </para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term><literal>--{enable,disable}-gtk-doc</literal></term>
                <listitem>
                  <para>
                    Specifies whether or not to build the HTML reference manual in
                    <literal>docs/reference/node-startup-controller/html/</literal>.
                  </para>
                </listitem>
              </varlistentry>
              <varlistentry>
                <term><literal>--with-prioritised-luc-types=&lt;comma separated integers&gt;</literal></term>
                <listitem>
                  <para>
                    Allows to define an ordered list of LUC types to be prioritised
                    during start-up. The start groups corresponding to these LUC types
                    will be started before any other groups.
                  </para>
                  <para>
                    The default is an empty list.
                  </para>
                </listitem>
              </varlistentry>
            </variablelist>
            For more information about all available configuration options (such as
            installation paths), run:
            <programlisting>./configure --help</programlisting>
          </para>
        </formalpara>
      </listitem>
      <listitem>
        <formalpara>
          <title>Building</title>
          <para>
            To actually build the Node Startup Controller and its reference manual,
            simply run the following:
          </para>
          <programlisting>make</programlisting>
        </formalpara>
      </listitem>
      <listitem>
        <formalpara>
          <title>Installing</title>
          <para>
            To install the Node Startup Controller into the system using the paths
            specified as part of the build configuration, simply run:
          </para>
          <programlisting>make install</programlisting>
        </formalpara>
      </listitem>
    </orderedlist>
  </refsect1>
</refentry>