AC.py - Python Autoconf
=======================

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

AC.py is a Python implementation of the popular autoconf tool used in
ascertaining a sane, stable environment before attempting to build large
projects. The purpose of AC.py is to provide a simpler way of performing
these tests, along with added functionality to resolve environmental
issues at the same time.

License
~~~~~~~

AC.py is licensed with `GPLv3 <http://www.gnu.org>`_. This is free
software that may be used by anyone for any purposes and distributed
freely, and comes with no warranty.

Author Info.
~~~~~~~~~~~~

Originally authored by `Tom A.
Thorogood <mailto:tom@tomthorogood.com>`_.

AC.py's central repository is located at
`github.com/tomthorogood/ac.py <http://www.github.com/tomthorogood/ac.py>`_.

Installation
------------

AC.py can be installed using

::

    pip install ac

or

::

    easy_install ac

Additionally, you can clone and install yourself using:

::

    git clone git://github.com/tomthorogood/AC.py
    cd AC.py
    python setup.py install

You do not need to install ac.py in order to use it. It can be cloned
and used as any standard Python module.

Usage
-----

AC.py aims to be simpler than than traditional autoconf, and is highly
customizable. The following tutorial will allow you to:

-  Test for libraries and executables
-  Set up distribution-specific alternatives for failed tests
-  Use test results to populate fields in a manifest Makefile.

The Shell Environment
---------------------

AC.py will always attempt to test the shell environment first. The
default shell can be changed using the ``--shell`` flag. When running
any shell scripts generated by AC.py or written by you, the hashbang
interpreter directive will always be at the head of each script
(#!/bin/sh), using the results from the shell environment test.

If you do not want your users to have to use the shell flag, but do want
to require a specific shell environment, you can set the default using

::

    # ac.set_shell
    ac.set_shell("sh")
    ac.set_shell("bash")
    ac.set_shell("tcsh")

However, it is highgly recommended that you use bash commands and
scripts that will work across all platforms and shells.

Required Successes
------------------

Tests marked as required (or called with a 'require' function) will halt
the configuration script if the test is not a success and there is no
fail alternative provided.

A Generic Test
--------------

You can use any Python scripting to come up with a true/false result and
pass the result into the test framework using

::

    # ac.test("test_name", result, [required=True|False])

