BSDBuild Logo

BSDBuild Manual

(Printable Version)
build.lib.mk(5)

SYNOPSIS

include <build.lib.mk>

DESCRIPTION

The build.lib.mk module compiles static and/or shared libraries from a set of source files. For shared libraries, it uses a bundled copy of GNU libtool. The module provides built-in support for sources in the following languages:
  • Ada (*.adb, *.ads)
  • Assembler (*.asm)
  • C (*.c)
  • C++ (*.cc, *.cpp)
  • Objective C (*.m)
  • Lex (*.l)
  • Yacc (*.y)

TARGETS

lib${LIB}.a Compile the source files into a static library.
lib${LIB}.la Compile the source files into static and shared libraries using libtool.
lib${LIB}.so Compile the source files into static and shared libraries (without libtool).
clean-lib Clean up object and library files.
cleandir-lib Clean up for packaging.
install-lib Install library files to the target installation directory (see build.common.mk(5)).
deinstall-lib Uninstall libraries from the installation directory.

VARIABLES

SRCS List of source files to compile into the library.
SRCS_GENERATED List of source files (appearing in ${SRCS}) are auto-generated. Files in this list will be processed before anything else is compiled.
LIB Name of target library. Platform-specific transforms will be applied to the name.
LIBDIR Target installation directory for libraries (usually set by configure).
LIB_INSTALL If set to Yes, the install target will install the library files, otherwise it will be a no-op. Defaults to No.
LIB_BUNDLE If set to an output filename, compile a library bundle or framework into the specified target.
LIB_SHARED If set to Yes, a shared library will be built. Default is No.
LIB_MODULE If set to Yes, a dlopen(3) compatible module will be built. Default is No.
LIB_PROFILE If set to Yes, compile library with profiling instrumentation.
LIB_GUID A Global Unique Identifier (GUID) for the library. Exact interpretation is platform-specific.
LIB_CURRENT Major version number for shared libraries.
LIB_REVISION Minor version number for shared libraries.
LIB_AGE Revision number for shared libraries.
LIBS Specify other libraries to link against this library. Bare filename arguments are interpreted as archive files ("foo.a" or "foo.la"). Arguments of the form "-L/path/to/dir" and "-lfoo" specify shared libraries.
USE_LIBTOOL If set to Yes, use libtool(1) to build the libraries. If set to No, generate the library using the traditional method involving ar(1), ranlib(1), and -fPIC.
LIBTOOL Path to GNU libtool(1). This is usually set by the configure script. BSDBuild-generated configure scripts will select BSDBuild's bundled copy of libtool by default (recommended), but an alternate libtool may be specified using --with-libtool=PATH.
LIBTOOLOPTS Specify general libtool arguments (passed before --mode). Defaults to "--quiet".
LIBTOOLOPTS_SHARED Specify extra libtool arguments for linking of shared libraries.
LIBTOOLOPTS_STATIC Specify extra libtool arguments for linking of static libraries.
CC Compiler for C, C++ and Objective C sources. Defaults to the CC environment variable, or "cc".
CFLAGS Compiler flags for C sources. Defaults to the CFLAGS environment variable.
CXXFLAGS Compiler flags for C++ sources. Defaults to the CXXFLAGS environment variable.
OBJCFLAGS Compiler flags for Objective C sources. Defaults to ${CFLAGS}.
ADAPREP The Ada preprocessor. Defaults to gnatprep(1).
ADAPREPFLAGS Extra flags to the Ada preprocessor.
ADAPREPFILE Definitions file for the Ada preprocessor.
CPPFLAGS Compiler preprocessor flags, for sources in all languages featuring a C preprocessor.
ASM Compiler for assembler sources. Defaults to nasm.
ASMFLAGS Compiler flags for assembler. Defaults to -g -w-orphan-labels.
LEX Path to the lex(1) lexical analyzer generator.
YACC Path to the yacc(1) parser generator.
LFLAGS Options for lex(1), defaults to " . "
LIBL Libraries to use for Lex lexers. Defaults to -ll.
WINDRES (Specific to the win32 platform) Path to the windres(1) utility, which generates windows resource files.
WINRES (Specific to the win32 platform) Resource file to use with windres(1).
YFLAGS Options for yacc(1), defaults to -d.
DATAFILES List of data files to install into ${DATADIR}. The files must have been generated from the build process (i.e., if using a separate build with --srcdir, the specified files must exist in the build directory).
DATAFILES_SRC Files to install into ${DATADIR}. This variable is handled similarly to DATAFILES,except that the specified files must exist in the source directory.
INCLDIR Library header files will be installed into this directory. See build.common.mk(5).
INCL List of library header files.
CONFDIR System-wide configuration files will be installed into this directory. It is usually set relative to ${SYSCONFDIR}, for example ${SYSCONFDIR}/MyLibrary.
CONF List of configuration files to install into ${CONFDIR}. Note that the install target will not override existing configuration files, instead it will output a The following configuration files have been preserved message.
CONF_OVERWRITE Overwrite any existing configuration file on installation. Default is "No".
CLEANFILES Any extra files that the clean target should remove.
CLEANDIRFILES Any extra files that the cleandir target should remove.

SEE ALSO


HISTORY

build.lib.mk first appeared in BSDBuild 1.0.

BSDBuild is based on the 4.4BSD build system.

Csoft.net ElectronTubeStore