Product SiteDocumentation Site

4.3. 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 Makefiles needed 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 (e.g. configure.ac)
automake
Creates the Makefile for a project on a specific system
autoscan
Generates a preliminary input file (i.e. configure.scan), which can be edited to create a final configure.ac to be used by autoconf
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 simply use yum to install any tools in the suite as you wish.

4.3.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 (e.g. wizards) 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 need to be checked out outside the Eclipse workspace. Afterwards, you can specify the source location for such projects in Eclipse. Any repository manipulation (e.g. commits, updates) will need to be done via the command line.