This document describes how to configure and build the open source XFS
commands and utilites ("xfsprogs") from source, and how to install and
run them.

See the README file in the top level directory for details about how
to contribute to the XFS project.


Linux Instructions
==================

0. If you have the binary rpm, simply install it and skip to step 2 (below).
   The rpm command to do this is:
	# rpm -Uvh xfsprogs-*.rpm
	[and optionally, for the development libraries and headers]
	# rpm -Uvh xfsprogs-devel-*.rpm

   The Debian command to do this is:
	# apt-get install xfsprogs
	[and optionally, for the development libraries and headers]
	# apt-get install xfslibs-dev

1. Configure, build and install the package

   The xfsprogs package uses autoconf/configure and expects a GNU build
   environment (your platform must at least have both autoconf and gmake). 
   You will also need to have installed either the e2fsprogs-devel package
   (on an RPM based system) or the uuid-dev package (on a Debian system)
   as some of the commands make use of the UUID library provided by these.

   To build the package and install it manually, use the following steps:

	# make
	# su root
	# make install
	[and optionally, for the development libraries and headers]
	# make install-dev

   Note that there are so many "install" variants out there that we
   wrote our own script (see "install-sh" in the top level directory).

   If you wish to turn off debugging asserts in the command build and
   turn on the optimizer then set the shell environment variables:

	OPTIMIZER=-O1
	DEBUG=-DNDEBUG

   before running make or Makepkgs.


Mac OS X Instructions
=====================

0. Note:  since there is no XFS implementation on Mac OS X, you are
   severely limited in what you can do.  mkfs.xfs(8), xfs_db(8) and
   xfs_repair(8) are the only functional tools on this platform, as
   they do not interact with the XFS kernel code at all.  Still, it
   can be useful to have access to these utilities from Mac OS X in
   a dual boot configuration, for example.

   However, keep on mind that mkfs.xfs on Mac OS X has disabled
   device access, although you can create a filesystem in a file.
   Also note that existing filesystem detection is disabled.

1. Configure, build and install the package

   The xfsprogs package uses autoconf/configure and expects a GNU build
   environment (your platform must at least have both autoconf, make,
   and glibtool). 

   You will also need to have built and installed the UUID library which
   is provided by the e2fsprogs source package. (Or use Homebrew, Macports
   or any other 3rd party package manager.)

   Building libuuid:

	[download; unzip/untar e2fsprogs; cd e2fsprogs]
	$ ./configure --prefix=/usr --mandir=/usr/share/man
	$ make lib/ext2fs/ext2_types.h
	$ cd lib/uuid
	$ make
	$ su root
	# make install
	[verify that you now have a /usr/lib/libuuid.a]

   Building xfsprogs:

	[firstly set these environment variables to these values]
	TAR=/usr/bin/gnutar
	LIBTOOL=/usr/bin/glibtool
	INSTALL_GROUP=wheel
	LOCAL_CONFIGURE_OPTIONS="--enable-gettext=no --enable-blkid=no"

	$ make
	$ su root
	# make install
	[and optionally, for the development libraries and headers]
	# make install-dev


IRIX Instructions
=================

0. Note: building this package on IRIX is mainly useful for the
   XFS developers who want to run purify on some of the tools.
   Most tools are not functional due to incomplete support for
   the syssgi and fcntl interfaces that XFS provides and which
   these tools make extensive use of.

1. Configure, build and install the package

   The xfsprogs package uses autoconf/configure and expects a GNU build
   environment which can be obtained by installing a number of freeware
   packages (gcc, autoconf, libtool, gmake).

   Even though IRIX provides a set of UUID functions via libc, you
   still need to have built and installed the UUID library which is
   provided by the e2fsprogs source package.  This is because some
   difficult to resolve differences exist between the UUID functions
   and data types, which makes co-existence of these more trouble
   than its worth at the moment.  Follow the instructions above for
   building and installing libuuid.

   Building xfsprogs:

	[firstly set these environment variables to these values]
	INSTALL_GROUP=sys
	CC=/usr/freeware/bin/gcc
	TAR=/usr/freeware/bin/tar
	MAKE=/usr/freeware/bin/gmake
	LIBTOOL=/usr/freeware/bin/libtool
	MSGFMT=/usr/freeware/bin/msgfmt
	MSGMERGE=/usr/freeware/bin/msgmerge
	XGETTEXT=/usr/freeware/bin/xgettext

	$ make
	$ su root
	# make install
	[and optionally, for the development libraries and headers]
	# make install-dev


