(automake-1.16.info)Conditional Programs


Prev: Conditional Sources Up: A Program
Enter node , (file) or (file)node

8.1.4 Conditional compilation of programs
-----------------------------------------

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.

Conditional Programs using ‘configure’ Substitutions
....................................................

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 Note: 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}'])’.

Conditional Programs using Automake Conditionals
................................................

You can also use Automake conditionals (Note: 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


automatically generated by info2www version 1.2.2.9