Next: Alternative, Previous: Subdirectories, Up: Directories [Contents][Index]
It is possible to define the SUBDIRS variable conditionally if,
like in the case of GNU Inetutils, you want to only build a subset of
the entire package.
To illustrate how this works, let’s assume we have two directories
src/ and opt/.  src/ should always be built, but we
want to decide in configure whether opt/ will be built
or not.  (For this example we will assume that opt/ should be
built when the variable ‘$want_opt’ was set to ‘yes’.)
Running make should thus recurse into src/ always, and
then maybe in opt/.
However ‘make dist’ should always recurse into both src/ and opt/. Because opt/ should be distributed even if it is not needed in the current configuration. This means opt/Makefile should be created unconditionally.
There are two ways to setup a project like this.  You can use Automake
conditionals (see Conditionals) or use Autoconf AC_SUBST
variables (see Setting Output
Variables in The Autoconf Manual).  Using Automake
conditionals is the preferred solution.  Before we illustrate these
two possibilities, let’s introduce DIST_SUBDIRS.
| • SUBDIRS vs DIST_SUBDIRS | Two sets of directories | |
| • Subdirectories with AM_CONDITIONAL | Specifying conditional subdirectories | |
| • Subdirectories with AC_SUBST | Another way for conditional recursion | |
| • Unconfigured Subdirectories | Not even creating a ‘Makefile’ |