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. 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.
AC.py's central repository is located at 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])