## Compiling the FileManager-Actions package Compiling the FileManager-Actions Package — How to compile FileManager-Actions |

## Building FileManager-Actions™ on UNIX

On UNIX, FileManager-Actions™ uses the standard GNU build system, using

- autoconf for configuring the package and resolving portability issues,

- automake for building makefiles that comply with the GNU Coding Standards;

- libtool for building shared libraries which target multiple platforms;

- pkg-config for tracking the compilation flags needed by used libraries (For each library, a small `.pc` text file is installed in a standard location that contains the compilation flags needed for that library along with version number information);

- GNU make for actually building.

  The FileManager-Actions™ makefiles will mostly work with different versions of make. However, there tends to be a few incompatibilities, so the FileManager-Actions™ team recommends installing GNU make if you don't already have it on your system.

The normal sequence for compiling and installing the FileManager-Actions™ package is thus:

`./configure`
`make`
`make install`

The standard options provided by GNU autoconf may be passed to the configure script. Please see the autoconf documentation or run ./configure --help for information about the standard options.

## Dependencies

FileManager-Actions™ depends on a number of other libraries.

- GLib and Gtk+ are fondamental libraries, both for user interface and for portability and internationalization management.

- libxml2 is used to manage XML imports and exports.

- libgtop2 is used to detect and identify running processes as part of the validation process of a candidate context.

- libUUID is the universally unique ID library used to automatically generate a unique identifier at item creation.

- Nautilus™ extension is needed if you want build Nautilus™ extensions.

## Extra Configuration Options

In addition to the normal options, the configure script in the FileManager-Actions™ package supports these additional arguments:

`configure` [[--with-nautilus-extdir=DIR] | [--with-default-io-provider=io-gconf|io-desktop] | [--enable-html-manuals[=gdt|db2html]] | [--enable-pdf-manuals[=dblatex]]]

`--with-nautilus-extdir=DIR`. With this option, one may define an alternate directory where our file manager extensions will be stored. This is most commonly useful:

- In development mode, we only have to install symlinks from the file manager standard location to our development tree once. Then, each new version of our libraries will be automatically considered by the file manager.

- When running make distcheck, so that compiled libraries do not interfere with installed ones.

- When the file manager is not installed itself in its standard location.

`--with-default-io-provider=io-desktop`. As of version 3.4, FileManager-Actions™ GConf is fully deprecated and its support will be removed. This option lets the packager define which will be the default destination when a new menu or action will be created. This defaults to "io-desktop" which is the internal identifier of the I/O provider which manages `.desktop` files.

`--enable-html-manuals[=gdt|db2html]`. This option lets the packager regenerate user's manuals from the DocBook sources as HTML documents. All available translations are generated. Building HTML documents from DocBook source can be realized through gnome-doc-tool or db2html. FileManager-Actions™ defaults to use gnome-doc-tool as its output format better sticks with those of Yelp. As this option is always set when running make distcheck, the packager can be mostly sure that the distributed manuals are up to date, and may safely ignore it.

`--enable-pdf-manuals[=dblatex]`. This option lets the packager regenerate user's manuals from the DocBook sources as PDF documents. All available translations are generated. As this option is always set when running make distcheck, the packager can be mostly sure that the distributed manuals are up to date, and may safely ignore it.