Previous: Conditional Sources, Up: A Program
Sometimes it is useful to determine the programs that are to be built
at configure time.  For instance, GNU cpio only builds
mt and rmt under special circumstances.  The means to
achieve conditional compilation of programs are the same you can use
to compile source files conditionally: substitutions or conditionals.
In this case, you must notify Automake of all the programs that can
possibly be built, but at the same time cause the generated
Makefile.in to use the programs specified by configure. 
This is done by having configure substitute values into each
_PROGRAMS definition, while listing all optionally built programs
in EXTRA_PROGRAMS.
     bin_PROGRAMS = cpio pax $(MT)
     libexec_PROGRAMS = $(RMT)
     EXTRA_PROGRAMS = mt rmt
   As explained in EXEEXT, Automake will rewrite
bin_PROGRAMS, libexec_PROGRAMS, and
EXTRA_PROGRAMS, appending ‘$(EXEEXT)’ to each binary. 
Obviously it cannot rewrite values obtained at run-time through
configure substitutions, therefore you should take care of
appending ‘$(EXEEXT)’ yourself, as in ‘AC_SUBST([MT],
['mt${EXEEXT}'])’.
You can also use Automake conditionals (see Conditionals) to
select programs to be built.  In this case you don't have to worry
about ‘$(EXEEXT)’ or EXTRA_PROGRAMS.
     bin_PROGRAMS = cpio pax
     if WANT_MT
       bin_PROGRAMS += mt
     endif
     if WANT_RMT
       libexec_PROGRAMS = rmt
     endif