docs/reference/Makefile.am: fix version.dir.xml generation
[nautilus-actions.git] / docs / reference / fma-compiling.xml
blob63180bc58d8c39171b02101ddb0dc4fcfcb0e963
1 <?xml version="1.0"?>
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
3                "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
5   <!ENTITY prodname "<productname>FileManager-Actions</productname>">
6   <!ENTITY nautilus "<productname>Nautilus</productname>">
7   <!ENTITY nemo     "<productname>Nemo</productname>">
8 ]>
10 <refentry id="fma-compiling" revision="10 sept 2015">
12   <refmeta>
13     <refentrytitle>Compiling the FileManager-Actions package</refentrytitle>
14     <manvolnum>3</manvolnum>
15     <refmiscinfo>FileManager-Actions</refmiscinfo>
16   </refmeta>
18   <refnamediv>
19     <refname>Compiling the FileManager-Actions Package</refname>
20     <refpurpose>
21       How to compile FileManager-Actions
22     </refpurpose>
23   </refnamediv>
25   <refsect1 id="building">
26     <title>Building &prodname; on UNIX</title>
28     <para>
29       On UNIX, &prodname; uses the standard GNU build system,
30       using
31       <itemizedlist>
32         <listitem>
33           <para> 
34             <ulink url="http://www.gnu.org/software/autoconf/">
35             <application>autoconf</application></ulink> for configuring
36             the package and resolving portability issues,
37           </para>
38         </listitem>
39         <listitem>
40           <para>
41             <ulink url="http://www.gnu.org/software/automake/">
42             <application>automake</application></ulink> for building
43             makefiles that comply with the GNU Coding Standards; 
44           </para>
45         </listitem>
46         <listitem>
47           <para>
48             <ulink url="http://www.gnu.org/software/libtool/">
49             <application>libtool</application></ulink> for building
50             shared libraries which target multiple platforms;
51           </para>
52         </listitem>
53         <listitem>
54           <para>
55             <ulink url="http://www.freedesktop.org/software/pkgconfig/">pkg-config</ulink>
56             for tracking the compilation flags needed by used libraries
57             (For each library, a small <literal>.pc</literal> text file is
58             installed in a standard location that contains the compilation
59             flags needed for that library along with version number
60             information);
61           </para>
62         </listitem>
63         <listitem>
64           <para>
65             <ulink url="http://www.gnu.org/software/make">GNU make</ulink>
66             for actually building.
67           </para>
68           <para>
69             The &prodname; makefiles will mostly work with different versions
70             of <command>make</command>. However, there tends to be
71             a few incompatibilities, so the &prodname; team recommends
72             installing <ulink url="http://www.gnu.org/software/make">GNU make</ulink>
73              if you don't already have it on your system.
74           </para>
75         </listitem>
76       </itemizedlist> 
77       
78       The normal sequence for compiling and installing the &prodname; 
79       package is thus:
81       <literallayout>
82         <userinput>./configure</userinput>
83         <userinput>make</userinput>
84         <userinput>make install</userinput>
85       </literallayout>
86     </para>
88     <para>
89       The standard options provided by <application>GNU
90       autoconf</application> may be passed to the
91       <command>configure</command> script.  Please see the
92       <ulink url="http://www.gnu.org/software/autoconf/manual/index.html">
93       <application>autoconf</application> documentation</ulink> or run
94       <command>./configure --help</command> for information about
95       the standard options.
96     </para>
97   </refsect1>
99   <refsect1 id="dependencies">
100     <title>Dependencies</title>
102     <para>
103       &prodname; depends on a number of other libraries.
104     </para>
106     <itemizedlist>
107       <listitem>
108         <para>
109           <ulink url="http://library.gnome.org/devel/glib/stable/">GLib</ulink>
110           and <ulink url="http://www.gtk.org/">Gtk+</ulink> are fondamental
111           libraries, both for user interface and for portability and
112           internationalization management.
113         </para>
114       </listitem>
115       <listitem>
116         <para>
117           <ulink url="http://xmlsoft.org/">libxml2</ulink> is used to
118           manage XML imports and exports.
119         </para>
120       </listitem>
121       <listitem>
122         <para>
123           <ulink url="http://library.gnome.org/devel/libgtop/stable/">libgtop2</ulink>
124           is used to detect and identify running processes as part of the validation
125           process of a candidate context.
126         </para>
127       </listitem>
128       <listitem>
129         <para>
130           <ulink url="ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng">libUUID</ulink>
131           is the universally unique ID library used to automatically generate a
132           unique identifier at item creation.
133         </para>
134       </listitem>
135       <listitem>
136         <para>
137           <ulink url="http://projects.gnome.org/nautilus/">&nautilus; extension</ulink>
138           is needed if you want build &nautilus; extensions.
139         </para>
140       </listitem>
141       <!--
142       <listitem>
143         <para>
144           <ulink url="https://github.com/linuxmint/nemo/">&nemo; extension</ulink>
145           is needed if you want build &nemo; extensions.
146         </para>
147       </listitem>
148       -->
149     </itemizedlist>
150   </refsect1>
152   <refsect1 id="extra-configuration-options">
153     <title>Extra Configuration Options</title>
155     <para>
156       In addition to the normal options, the
157       <command>configure</command> script in the &prodname; package
158       supports these additional arguments:
160       <cmdsynopsis>
161         <command>configure</command>
162         <group>
163           <arg>--with-nautilus-extdir=DIR</arg>
164           <!--
165           <arg>with-nemo-extdir=DIR</arg>
166           -->
167           <arg>--with-default-io-provider=io-gconf|io-desktop</arg>
168           <arg>--enable-html-manuals[=gdt|db2html]</arg>
169           <arg>--enable-pdf-manuals[=dblatex]</arg>
170         </group>
171       </cmdsynopsis>
172     </para>
174     <formalpara>
175       <title><systemitem>--with-nautilus-extdir=DIR</systemitem></title>
176       <!--
177       <title><systemitem>with-nemo-extdir=DIR</systemitem></title>
178       -->
179       <para>
180         With this option, one may define an alternate directory where
181         our file manager extensions will be stored.
182       </para>
183       <para>
184         This is most commonly useful:
185       </para>
186       <itemizedlist>
187         <listitem>
188           <para>
189             In development mode, we only have to install symlinks
190             from the file manager standard location to our development
191             tree once. Then, each new version of our libraries
192             will be automatically considered by the file manager.
193           </para>
194         </listitem>
195         <listitem>
196           <para>
197             When running <command>make distcheck</command>, so that
198             compiled libraries do not interfere with installed ones.
199           </para>
200         </listitem>
201         <listitem>
202           <para>
203             When the file manager is not installed itself in its standard
204             location.
205           </para>
206         </listitem>
207       </itemizedlist>
208     </formalpara>
210     <formalpara>
211       <title><systemitem>--with-default-io-provider=io-desktop</systemitem></title>
212       <para>
213         As of version 3.4, &prodname; GConf is fully deprecated and its support
214         will be removed.
215       </para>
216       <para>
217         This option lets the packager define which will be the
218         default destination when a new menu or action will be
219         created.
220       </para>
221       <para>
222         This defaults to &quot;io-desktop&quot; which is the internal
223         identifier of the I/O provider which manages
224         <filename>.desktop</filename> files.
225       </para>
226     </formalpara>
228     <formalpara>
229       <title><systemitem>--enable-html-manuals[=gdt|db2html]</systemitem></title>
230       <para>
231         This option lets the packager regenerate user's manuals
232         from the DocBook sources as HTML documents.
233       </para>
234       <para>
235         All available translations are generated.
236       </para>
237       <para>
238         Building HTML documents from DocBook source can be
239         realized through <application>gnome-doc-tool</application>
240         or <application>db2html</application>.
241         &prodname; defaults to use <application>gnome-doc-tool</application>
242         as its output format better sticks with those of
243         <application>Yelp</application>.
244       </para>
245       <para>
246         As this option is always set when running
247         <command>make distcheck</command>, the packager can be
248         mostly sure that the distributed manuals are up to date,
249         and may safely ignore it.
250       </para>
251     </formalpara>
253     <formalpara>
254       <title><systemitem>--enable-pdf-manuals[=dblatex]</systemitem></title>
255       <para>
256         This option lets the packager regenerate user's manuals
257         from the DocBook sources as PDF documents.
258       </para>
259       <para>
260         All available translations are generated.
261       </para>
262       <para>
263         As this option is always set when running
264         <command>make distcheck</command>, the packager can be
265         mostly sure that the distributed manuals are up to date,
266         and may safely ignore it.
267       </para>
268     </formalpara>
270   </refsect1>
272 </refentry>