Building a library

Building a library is much like building a program. In this case, the name of the primary is LIBRARIES. Libraries can be installed in libdir or pkglibdir.

the section called “Building a Shared Library”, for information on how to build shared libraries using Libtool and the LTLIBRARIES primary.

Each _LIBRARIES variable is a list of the libraries to be built. For instance to create a library named libcpio.a, but not install it, you would write:

noinst_LIBRARIES = libcpio.a

The sources that go into a library are determined exactly as they are for programs, via the _SOURCES variables. Note that the library name is canonicalized (the section called “How derived variables are named”), so the _SOURCES variable corresponding to liblob.a is liblob_a_SOURCES, not liblob.a_SOURCES.

Extra objects can be added to a library using the library_LIBADD variable. This should be used for objects determined by configure. Again from cpio:

libcpio_a_LIBADD = @LIBOBJS@ @ALLOCA@

In addition, sources for extra objects that will not exist until configure-time must be added to the BUILT_SOURCES variable (the section called “Built sources”).