summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL79
1 files changed, 79 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..85a839f1
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,79 @@
+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