README.gnu-build-system
=======================

Introduction
------------

`fswatch` is built using the GNU Build System (a.k.a. the Autotools) and
developers willing to modify the configuration files must have the GNU Build
System installed in order to do so.

For further information about the GNU Build System and its use, please refer to
its official documentation.

Installing the GNU Build System
-------------------------------

To install the GNU Build System, the following operations must be performed:

  * Get the GNU Build System components:
    - [Autoconf] (>= v. 2.69).
    - [Automake]: (>= v. 1.14.1).
    - [Libtool]: (>= v. 2.4.2).

  * Install the packages in the following order:
    - Autoconf
    - Automake
    - Libtool

  * From now on, `<bundle>` will indicate any of the above-mentioned
     components.

  * Grab the sources:

        $ wget <sources-url>

  * Uncompress the source bundle:

        $ gunzip <bundle>.tar.gz
        $ tar -xf <bundle>.tar

  * Configure the GNU Build System using the provided `autogen.sh` script:

        $ ./autogen.sh

    Whenever any component of the GNU Build System is updated, the `--force`
    option should be passed to `autogen.sh`, which in turn forwards it to
    `autoreconf`, to make sure that automatically generated scripts and macros 
    are updated:

        $ ./autogen.sh --force

  * Configure the package:

        $ ./configure [...]

  * If you want to install the package in the default location
    (`/usr/local/bin`) you can invoke `./configure` with no option, otherwise 
    provide the desired installation directory using the `--prefix` option:

        $ ./configure --prefix=/destdir

  * Build the package:

        $ make

  * Test the components:

        $ make check

  * Test the installed components:

        $ make check

  * Install the components:

        $ make install

    Depending on the installation directory additional privileges may be
    required.
     
  * Add the installation directory to the `PATH`, otherwise builds of the
    package may fail:

        $ export PATH=/destdir/bin:$PATH

[Autoconf]: http://www.gnu.org/software/autoconf/
[Automake]: http://www.gnu.org/software/automake/
[Libtool]: http://www.gnu.org/software/libtool/

-----

Copyright (C) 2014 Enrico M. Crisostomo

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.