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’.)
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
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
|• 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’|