L4Re Operating System Framework
Interface and Usage Documentation
|
The prog role is used to build executable programs.
The following variables can only be set globally for the Makefile:
MODE
Kind of target to build for. The following values are possible:
static
- build a statically linked binary (default)shared
- build a dynamically linked binaryl4linux
- build a binary for running on L4Linux on the target platformhost
- build for host systemtargetsys
- build a binary for the target platform with the compiler's default settingsSYSTEMS
List of architectures the target can be built for. The entries must be space-separated entries either naming an architecture (e.g. amd64) or an architecture and ABI (e.g, arm-l4f). When not defined, the target will be built for all possible platforms.
TARGET
Name or names of the binaries to compile. This variable may also be postfixed with a specific architecture.
The following variables may either be used with or without a description suffix. Without suffix they will be used for all operations. With a specific description their use is restricted to a subset. These specifications include a target file and the architecture, both optional but in this order, separated by underscores. The specific variables will be used in addition to the more general ones.
SRC_C
/ SRC_CC
/ SRC_F
/ SRC_S
.c, .cc, .f90, .S source files.
REQUIRES_LIBS
List of libraries the binary depends on. This works only with libraries that export a pkg_config configuration file. Automatically adds any required include and link options.
DEPENDS_PKGS
List of packages this binary depends on. If one these packages is missing then building of the binary will be skipped.
CPPFLAGS
/ CFLAGS
/ CXXFLAGS
/ FFLAGS
/ ASFLAGS
Options for the C preprocessor, C compiler, C++ compiler, Fortran compiler and assembler. When used with suffix, the referred element is the source file, not the target file.
LDFLAGS
Options for the linker ld.
LIBS
Additional libraries to link against (with -l).
PRIVATE_LIBDIR
Additional directories to search for libraries.
CRT0
/ CRTN
(expert use only) Files containing custom startup and finish code.
LDSCRIPT
(expert use only) Custom link script to use.