1This document provides generic information for compiling EncFS.
2
3If you are looking for specific instructions for your distribution,
4take a look at the page
5**[Installing EncFS](https://github.com/vgough/encfs/wiki/Installing-Encfs)**
6in the wiki.
7
8Compiling EncFS
9===============
10
11EncFS uses the CMake toolchain to create makefiles.
12
13Quickest way to build and test EncFS :
14
15    ./build.sh
16
17Or following are the detailed steps to build EncFS:
18
19    mkdir build
20    cd build
21    cmake ..
22    make
23
24Optional, but strongly recommended, is running the unit and integration
25tests to verify that the generated binaries work as expected.  Unit
26tests will run almost instantly:
27
28    make unittests
29    make test
30
31Integration tests will take ~20 seconds to run and will mount an
32encrypted filesystem and run tests on it:
33*running integration tests from root (or with sudo) will run additional ones*
34
35    make integration
36
37The compilation process creates two executables, encfs and encfsctl in
38the encfs directory.  You can install to in a system directory via:
39
40    make install
41
42If the default path (`/usr/local`) is not where you want things
43installed, then set the CMAKE_INSTALL_PREFIX option when running cmake.  Eg:
44
45    cmake .. -DCMAKE_INSTALL_PREFIX=/opt/local
46
47Encfs and encfsctl can also be installed by hand.  They need no special
48permissions.  You may also want the man pages encfs.1 and encfsctl.1.
49
50Dependencies
51============
52
53EncFS depends on a number of libraries:
54
55    * fuse : the userspace filesystem layer
56    * openssl or libressl : used for cryptographic primitives
57    * tinyxml2 : for reading and writing XML configuration files
58    * gettext : internationalization support
59    * libintl : internationalization support
60    * cmake : version 3.0.2 (Debian jessie version) or newer
61    * GNU make or ninja-build : to run the build for cmake
62
63Compiling on Debian and Ubuntu
64==============================
65
66See the automated build static in README.md for current build status on Ubuntu systems.
67
68The build configuration files (circle.yml) always contains up-to-date
69instructions to build EncFS on Ubuntu distributions.
70
71On Debian Stable, additional installations from Backports branch might be
72required (cmake 3.x for example, see https://backports.debian.org/ for instructions).
73