build.lib.mk
—
bsdbuild - compilation of libraries
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:
- C (*.c)
- C++ (*.cc or *.cpp)
- Objective C (*.m)
- Assembler (*.asm)
- Lex (*.l)
- Yacc (*.y)
- 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
(libtool comes bundled with BSDBuild).
- 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
csoft.common.mk(5)).
- deinstall-lib
- Uninstall libraries from the installation directory.
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_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_GUID
- A Global Unique Identifier (GUID) for the library. Exact interpretation is
platform-specific.
LIB_MAJOR
- Major version number for shared libraries.
LIB_MINOR
- Minor version number for shared libraries.
LIB_REVISION
- 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}’.
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 ‘’.
YFLAGS
- Options for
yacc(1),
defaults to ‘-d’.
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).
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".
build.lib.mk
first appeared in BSDBuild 1.0.
BSDBuild is based on the 4.4BSD build system.