Installation instructions
=========================

The Btrfs utility programs require the following libraries/tools to build:

- libuuid - provided by util-linux, e2fsprogs/e2fslibs or libuuid
- libblkid - block device id library
- liblzo2 - LZO data compression library
- zlib - ZLIB data compression library

For the btrfs-convert utility:

- e2fsprogs - ext2/ext3/ext4 file system libraries, or called e2fslibs

Generating documentation:

- asciidoc - text document format tool
- xmlto - text document format tool

XATTR library should be provided by the standard C library or by

- libattr - extended attribute library

Please note that the package names may differ according to the distribution.
See https://btrfs.wiki.kernel.org/index.php/Btrfs_source_repositories#Dependencies .


Building from sources
---------------------

To build from git sources you need to generate the configure script using the
autotools:

 $ ./autogen.sh

To build from the released tarballs:

 $ ./configure
 $ make
 $ make install

You may disable building some parts like documentation, btrfs-convert or
backtrace support. See ./configure --help for more.

Specific CFLAGS or LDFLAGS should be set like

 $ CFLAGS=... LDFLAGS=... ./configure --prefix=/usr

and not as arguments to make. You can specify additional flags to build via
variables EXTRA_CFLAGS and EXTRA_LDFLAGS that get appended to the predefined
values of the respective variables.

 $ make EXTRA_CFLAGS=-ggdb3

The build utilizes autotools, dependencies for generating the configure
scripts are:

* autconf, autoheader
* automake, aclocal
* pkg-config


Staticly built binaries
-----------------------

The makefiles are ready to let you build static binaries of the utilities. This
may be handy in rescue environments. Your system has to provide static version
of the libraries.

$ make static
$ make btrfs.static
$ make btrfs-convert.static

The resulting static binaries have the '.static' suffix, the intermediate object
files do not conflict with the normal (dynamic) build.


References:
* https://btrfs.wiki.kernel.org
