Table of Contents
You may always find the latest version of abuild by following the links on abuild's website. To use abuild, the following items must be available on your system:
GNU Make version 3.81 or higher is required if you are building any build items that use GNU Make as a backend. This would include platform-independent code and C/C++ code, but not Java code.
A Java 5 or newer Java SDK is required if you are going to use abuild to build Java code. Abuild is known to pass its test suite using GNU gcj 4.2.1 in addition to versions 1.5 or newer of Sun's Java SDK, so it is possible to build and run abuild in a pure open source environment.
Apache Ant version 1.7.0 or newer with ant-contrib version 1.0.b3 or later installed in ant's lib directory is required if you are building any Java code. Abuild's own Java code requires a Java 5 Java SDK, but it could likely be ported fairly easily to any Java SDK that can build Apache Ant.
Perl version 5.8 or newer is required if you are performing any GNU Make-based builds.
Perl version 5.8 or newer and qtest version 1.0 or newer are required if you are using the qtest automated test framework. Abuild's own test suite uses qtest. Note also that qtest requires GNU diffutils. Any version should do.
In order to use abuild's autoconf support, you need autoconf version 2.59 or newer, automake version 1.9 or newer. These are also required for abuild's test suite to pass since the test suite exercises its autoconf support.
If you are planning on building any GNU Make-based build items on Windows, Cygwin is required. For a Java-only abuild installation on Windows, Cygwin and Perl are not required. It is hoped that a future version of abuild will not require Cygwin. For details on using Cygwin with abuild, please see Section 2.4, “Additional Requirements for Windows Environments”.
To build abuild, you must also have version 1.33.1 or newer of the boost regex and thread libraries. [2] Abuild is known to buildable by gcc, xlc, Microsoft Visual C++ (7.1 or newer), and mingw, [3] and it should be buildable by on any system and with any compiler that supports the boost thread and regular expression libraries. In order for shared library support to work properly with gcc, gcc must be configured to use the GNU linker. [4] Abuild itself contains C++ code and Java code, so all the runtime requirements for both systems are required to build abuild.
Since abuild determines where it is being run from when it is
invoked, a binary distribution of abuild is not tied to a
particular installation path. It finds the root of its
installation directory by walking up the path from the abuild
executable until it finds a directory that contains
make/abuild.mk. This makes it easy to have
multiple versions of abuild installed simultaneously, and it
also makes it easy to create relocatable binary distributions of
abuild.
Abuild itself does not require any environment variables to be
set, but ant and/or the Java
development environment may. If you have the
ANT_HOME environment variable set, abuild will
honor it when selecting which copy of
ant to run. Otherwise, it will run
ant from your path.
As you begin using abuild, you may find yourself generating a
collection of useful utility build items for things like specific
third-party libraries, external compilers, documentation
generators, or test frameworks. There is a small collection of
contributed build items in the
abuild-contrib package, which is available
at abuild's web
site. These may have additional requirements. For
details, please see the information about
abuild-contrib on the website.
[2] Abuild is known to work with the boost 1.32 in Red Hat Enterprise Linux 4, but it may not work with that version of boost on other systems. It has also been tested with boost 1.34 and 1.34.1.
[3] Abuild does not pass its test suite reliably when built with mingw, and it also appears to run more slowly when built with mingw than when built with Visual C++. No serious effort has been put into figuring out why there are problems with abuild when built with mingw, but this may be addressed in conjunction of creating a version of abuild that works in Windows for C/C++ builds without Cygwin. Abuild appears to work with equal reliability on Windows with Visual C++ as on Linux with gcc.
[4] The only reason for the GNU linker requirement is that abuild currently knows about -fPIC. It would be better to have a more robust way of configuring flags for position-independent-code, but it's not clear how to do this without replicating all the knowledge built into libtool or having some autoconf-like method of configuring abuild at runtime.