Installing
----------

To build and install tarsnap, run:
    ./configure
    make
    make install

Tarsnap should build and run on most IEEE Std 1003.1 (POSIX) compliant
systems which
  1. Includes the Software Development Utilities option,
  2. Has OpenSSL available via -lcrypto and #include <openssl/foo>,
  3. Has zlib available via -lz and #include <zlib.h>,
  4. Provides /dev/urandom, and
  5. (Linux only) has the <ext2fs/ext2_fs.h> header (which is *not* the same
     as the <linux/ext2_fs.h> header file.


Building from git
-----------------

Normal users should only use the signed tarballs from https://tarsnap.com, but
for experimental development, use:

    autoreconf -i
    ./configure
    make

- In order to support the `AX_CFLAGS_WARN_ALL` autoconf directive,
  you will need to install the autoconf archive.  On Debian, use
  the `autoconf-archive` package; on FreeBSD, use
  `devel/autoconf-archive`.

- If you receive this message:

        configure.ac:...: error: possibly undefined macro: AC_MSG_WARN

  then you need `pkg-config`.  On Debian, use the `pkg-config`
  package; on FreeBSD, use `devel/pkgconf`.


Platform-specific notes
-----------------------

- On Debian, Ubuntu, and related Linux distributions, the minimal set of
  dependencies is:

      sudo apt-get install gcc libc6-dev make libssl-dev zlib1g-dev e2fslibs-dev

  To enable all optional features, install:

      sudo apt-get install bash-completion libacl1-dev libattr1-dev libbz2-dev liblzma-dev pkg-config

- On RedHat, CentOS, SuSE, Amazon Linux, and related Linux distributions:

      sudo yum install gcc make glibc-devel openssl-devel zlib-devel e2fsprogs-devel

  To enable all optional features, install:

      sudo yum install bzip2-devel libacl-devel libattr-devel xz-devel pkgconf bash-completion

- on MacOS X: in addition to the normal build toolchain (probably installed via
  XCode), you need the OpenSSL development library. This could be installed
  manually, or via a package manager:

  Homebrew:

      brew install openssl

  MacPorts:

      sudo port install openssl

  If you installed OpenSSL via homebrew, ./configure should find the right
  directories.  If it doesn't, or if you installed it another way, you might
  need to specify the directory with:
      ./configure CPPFLAGS="-I/PATH_TO/openssl/include" LDFLAGS="-L/PATH_TO/opt/openssl/lib"

  Alternatively, you may wish to add these lines to your $HOME/.profile:
      export CPPFLAGS="-I/PATH_TO/openssl/include $CPPFLAGS"
      export LDFLAGS="-I/PATH_TO/openssl/lib $LDFLAGS"
  (And then open a new terminal window.)

  Whichever method you choose, replace "/PATH_TO/" with the actual path to
  your OpenSSL installation.

- on Solaris: there are no problems compiling with cc, c99, or gcc.
  To compile with clang, please use:

      ./configure CC=clang CFLAGS="-U__EXTENSIONS__"
      make

  and ignore warning messages about _XOPEN_SOURCE=600.


Packaging notes
---------------

Optional shell completion scripts:

- `--with-bash-completion-dir[=DIR]`, with the DIR specified explicitly or
  left blank.  If `DIR` is left blank, it attempts to use `pkg-config` and
  `bash-completion >= 2.0` to determine where to put the bash completion
  scripts.  If your system does not match those requirements, please specify
  `DIR` explicitly.

- `--with-zsh-completion-dir=DIR`, with the DIR specified explicitly.
