autostars, The auto* Sandbox
autostars was developed out of a ball to whack.
The auto* tools (autoconf, automake, libtool) are very handy in case you
want to write portable applications with lots of options out of the box.
They're not always easy to understand or maintain, however. I think there
is a straightforward reason for that : the feedback loop for these tools
is so slow that you don't learn how everything works. Instead, you fix
something, run it again, stay away for a few minutes and then return to
see if it worked or not. By then you had forgotten what exactly it was
you were trying to do.
During a particularly intensive build-fix weekend on GStreamer
(http://gstreamer.net), I got fed up with the long test cycles of running
the autogen.sh script and waiting to see if that one little test you
wanted to get running succeeded or not. The only thing I wanted to do was
fix an arts.m4 file which had some buggy checks (in this case, it was
trying to compile a test application for which it needed standard C++
headers, but they didn't show up in the test compile line).
So here's autostars, which allows you to easily test specific checks for
specific programs, as well as other options, with the smallest amount of
fluff possible, and (hopefully) with enough comments to make you
understand autotools by playing with them and examining them.
At the start of this project, I am still relatively new to autotools. I
don't consider this a problem; on the contrary, this will make *sure* that
everything that goes into autostars is easily understandable by novice
I hope this helps you in understanding the basic autotools principles
better, as well as allow you to work on bigger projects' configuration and
When to use this
Every time you're trying to fix a project's configure or build system, or
try to write a new check or add a new feature, but you just can't get it
right, you should consider using autostars.
Instead of spending a whole day fixing, testing, reimplementing, consider
how much time you'd win if you could concentrate on just getting the tests
and features to work. Also consider that, by doing this test in a
minimalistic way in the Autostar Sandbox, you pass on the knowledge you
have gained to others who can see what you did to pull it off. In most
cases, you'll also get it done quicker if you implement it in autostars
first, and it'll probably be cleaner because you put your time and effort
in getting the tests right instead of in waiting for the outcome.
This script runs one particular test if you specify it on the command
line, or all possible tests when launched without arguments. In the
second case, it will give an overview of failed and passed tests.