Next: Conditional compilation of sources, Previous: Defining program sources, Up: Building a program [Contents][Index]
If you need to link against libraries that are not found by
configure
, you can use LDADD
to do so. This variable is
used to specify additional objects or libraries to link with; it is
inappropriate for specifying specific linker flags, you should use
AM_LDFLAGS
for this purpose.
Sometimes, multiple programs are built in one directory but do not share
the same link-time requirements. In this case, you can use the
prog_LDADD
variable (where prog is the name of the
program as it appears in some _PROGRAMS
variable, and usually
written in lowercase) to override the global LDADD
. If this
variable exists for a given program, then that program is not linked
using LDADD
.
For instance, in GNU cpio, pax
, cpio
and mt
are
linked against the library libcpio.a. However, rmt
is
built in the same directory, and has no such link requirement. Also,
mt
and rmt
are only built on certain architectures. Here
is what cpio’s src/Makefile.am looks like (abridged):
bin_PROGRAMS = cpio pax $(MT) libexec_PROGRAMS = $(RMT) EXTRA_PROGRAMS = mt rmt LDADD = ../lib/libcpio.a $(INTLLIBS) rmt_LDADD = cpio_SOURCES = … pax_SOURCES = … mt_SOURCES = … rmt_SOURCES = …
prog_LDADD
is inappropriate for passing program-specific
linker flags (except for -l, -L, -dlopen and
-dlpreopen). So, use the prog_LDFLAGS
variable for
this purpose.
It is also occasionally useful to have a program depend on some other
target that is not actually part of that program. This can be done
using the prog_DEPENDENCIES
variable. Each program depends
on the contents of such a variable, but no further interpretation is
done.
If prog_DEPENDENCIES
is not supplied, it is computed by
Automake. The automatically-assigned value is the contents of
prog_LDADD
, with most configure substitutions, -l,
-L, -dlopen and -dlpreopen options removed. The
configure substitutions that are left in are only ‘$(LIBOBJS)’ and
‘$(ALLOCA)’; these are left because it is known that they will not
cause an invalid value for prog_DEPENDENCIES
to be
generated.
Next: Conditional compilation of sources, Previous: Defining program sources, Up: Building a program [Contents][Index]