5. A Minimal GNU Autotools Project
This chapter describes how to manage a minimal project using the
GNU Autotools. A minimal project is defined to be the smallest possible
project that can still illustrate a sufficient number of principles in
using the tools. By studying a smaller project, it becomes easier to
understand the more complex interactions between these tools when larger
projects require advanced features.
The example project used throughout this chapter is a fictitious command
foonly is written in C,
but like many interpreters, uses a lexical analyzer and a parser
expressed using the
yacc tools. The package
will be developed to adhere to the GNU `Makefile' standard,
which is the default behavior for Automake.
There are many features of the GNU Autotools that this small project will
not utilize. The most noteworthy one is libraries; this package does
not produce any libraries of its own, so Libtool will not feature in
this chapter. The more complex projects presented in 9. A Small GNU Autotools Project and 12. A Large GNU Autotools Project will illustrate
how Libtool participates in the build system. The purpose of this
chapter will be to provide a high-level overview of the user-written
files and how they interact.