Libtool library support is implemented under the ‘LTLIBRARIES’ primary.
Here are some samples from the Automake Makefile.am in the libtool distribution’s demo subdirectory.
First, to link a program against a libtool library, just use the ‘program_LDADD’5 variable:
bin_PROGRAMS = hell hell_static # Build hell from main.c and libhello.la hell_SOURCES = main.c hell_LDADD = libhello.la # Create a statically linked version of hell. hell_static_SOURCES = main.c hell_static_LDADD = libhello.la hell_static_LDFLAGS = -static
You may use the ‘program_LDFLAGS’ variable to stuff in any flags you want to pass to libtool while linking program (such as -static to avoid linking uninstalled shared libtool libraries).
Building a libtool library is almost as trivial… note the use of ‘libhello_la_LDFLAGS’ to pass the -version-info (see Versioning) option to libtool:
# Build a libtool library, libhello.la for installation in libdir. lib_LTLIBRARIES = libhello.la libhello_la_SOURCES = hello.c foo.c libhello_la_LDFLAGS = -version-info 3:12:1
The -rpath option is passed automatically by Automake (except for
libraries listed as
noinst_LTLIBRARIES), so you
should not specify it.
See The Automake Manual in The Automake Manual, for more information.
Since GNU Automake 1.5, the flags -dlopen or -dlpreopen (see Link mode) can be employed with the ‘program_LDADD’ variable. Unfortunately, older releases didn’t accept these flags, so if you are stuck with an ancient Automake, we recommend quoting the flag itself, and setting ‘program_DEPENDENCIES’ too:
program_LDADD = "-dlopen" libfoo.la program_DEPENDENCIES = libfoo.la