3.2. Autotools
GNU Autotools is a suite of command line tools that allow developers to build applications on different systems, regardless of the installed packages or even Linux distribution. These tools aid developers in creating a
configure
script. This script runs prior to builds and creates the top-level Makefile
s required to build the application. The configure
script may perform tests on the current system, create additional files, or run other directives as per parameters provided by the builder.
The Autotools suite's most commonly-used tools are:
- autoconf
- Generates the
configure
script from an input file (configure.ac
, for example) - automake
- Creates the
Makefile
for a project on a specific system - autoscan
- Generates a preliminary input file (that is,
configure.scan
), which can be edited to create a finalconfigure.ac
to be used byautoconf
All tools in the Autotools suite are part of the
Development Tools
group package. You can install this package group to install the entire Autotools suite, or use yum
to install any tools in the suite as you wish.
3.2.1. Autotools Plug-in for Eclipse
The Autotools suite is also integrated into the Eclipse IDE via the Autotools plug-in. This plug-in provides an Eclipse graphical user interface for Autotools, which is suitable for most C/C++ projects.
As of Red Hat Enterprise Linux 6, this plug-in only supports two templates for new C/C++ projects:
- An empty project
- A "hello world" application
The empty project template is used when importing projects into the C/C++ Development Toolkit that already support Autotools. Future updates to the Autotools plug-in will include additional graphical user interfaces (wizards, for example) for creating shared libraries and other complex scenarios.
The Red Hat Enterprise Linux 6 version of the Autotools plug-in also does not integrate
git
or mercurial
into Eclipse. As such, Autotools projects that use git
repositories will be required to be checked out outside the Eclipse workspace. Afterwards, you can specify the source location for such projects in Eclipse. Any repository manipulation (commits, or updates for example) are done via the command line.