Node: A Library, Next: , Previous: A Program, Up: Programs



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.

See 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 (see Canonicalization), 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 (see Sources).