PMKFILE(5)
NAME
pmkfile -- pmk specification file
DESCRIPTION
pmkfile is a file containing specifications that help configuring a package build on a given platform.
SYNTAX
See pmksyntax.5 to have an overview of the basic syntax of pmkfiles.
SPECIFIC COMMANDS
The following commands have no label.
- SETTINGS
- This command sets pmk parameters.
- Arguments:
AC_COMPAT type is 'quoted', enable autoconf compatibility(empty string or filename). - LANG type is 'quoted', global default language.
- TARGET type is 'list', list of target's filenames.
- DETECT type is 'list', list of languages (compilers to
- identify).
- For example:
SETTINGS {AC_COMPAT="config.h"
LANG="C"
TARGET=("src/file.c","src/file.h")
DETECT=("CC")- }
- DEFINE This command permits to define variables.
Arguments:- Those are the variables to be defined (quote data type only).
- For example:
DEFINE {PACKAGE="my_prog"
VERSION="0.1"} - SWITCHES
- This command is setting dependency switches (see further DEPEND
definition). - Arguments:
- For example:
SWITCHES {use_curses=TRUE
use_gtk=FALSE}
STANDARD COMMANDS
All these commands need a label.
- They can all have the following optional arguments:
- REQUIRED Specify if this test is required to achieve the configu
ration. Type is 'bool'. If not specified, it is TRUE by default.
- DEPEND Specify check dependencies. Type is 'list'. A depen
- dency is a label or a switch name. The value of each
dependency can be negated by adding a leading '!' sign.
If at least one of the dependencies is false then the
check will be disabled. - For example:
DEPEND = ("header_gtk","!header_qt") - DEFS Specify additional defines. Type is 'list'. If the
- check succeeds then the given defines are also recorded
else they are ignored. - Some of these commands can also have the following arguments:
- LANG Specify the language used in the following list:
C, C++- Type is 'quoted', by default \"C\" is the used language.
- Here the list of commands:
- CHECK_BINARY
- Check if a binary is in the path.
- Arguments:
REQUIREDDEPENDDEFSNAME type is 'quoted', name of the binary.VARIABLE type is 'quoted', variable name to store thepath. - CHECK_HEADER
- Check language header and optionally a function.
- Arguments:
REQUIREDDEPENDDEFSLANGNAME type is 'quoted', name of the header.MACRO type is 'list', list of one or more compilermacros to check, optional. - FUNCTION type is 'quoted' or 'list', name or list of func
- tions to check, optional.
- CFLAGS type is 'quoted', variable name to store CFLAGS
- values, optional.
- SUBHDR type is 'list', list of header dependencies,
- optional.
- CHECK_LIB
- Check a library and optionally a function.
- Arguments:
REQUIREDDEPENDDEFSLANGNAME type is 'quoted', name of the library to check.FUNCTION type is 'quoted' or 'list', name or list of functions to check, optional. - LIBS type is 'quoted', variable name to store LIBS
- values, optional.
- CHECK_CONFIG
- Check using a *-config tool.
- Arguments:
REQUIREDDEPENDDEFSNAME type is 'quoted', config tool name.VERSION type is 'quoted', minimal version needed,optional. - CFLAGS type is 'quoted', variable name to store CFLAGS
- values, optional.
- LIBS type is 'quoted', variable name to store LIBS
- values, optional.
- VARIABLE type is 'quoted', variable name to store the path
- of the config tool, optional.
- CHECK_PKG_CONFIG
- Check a package using pkg-config.
- Arguments:
REQUIREDDEPENDDEFSNAME type is 'quoted', package name.VERSION type is 'quoted', minimal version needed,optional. - CFLAGS type is 'quoted', variable name to store CFLAGS
- values, optional.
- LIBS type is 'quoted', variable name to store LIBS
- values, optional.
- CHECK_TYPE
- Check if the given type exists.
- Arguments:
REQUIREDDEPENDDEFSLANGNAME type is 'quoted', name of the type to check.HEADER type is quoted, name of the header where to findthe given type. - MEMBER type is quoted, name of a member of the structure
- given in NAME to be checked.
- CHECK_VARIABLE
- Check if the given variable does exist and optionally its value.
- Arguments:
REQUIREDDEPENDDEFSNAME type is 'quoted', name of the variable to check.VALUE type is 'quoted', value to check with the variable, optional.
CONDITIONAL COMMANDS
- IF(expression)
- It contains other commands that will be executed only if the
given expression is true. - Arguments:
- For example:
IF(header_gtk) {DEFINE {HAVE_GTK = "1"}} - ELSE(expression)
- It contains other commands that will be executed only if the
given expression is false. - Arguments:
- For example:
ELSE(header_glib) {DEFINE {HAVE_GLIB = "0"}}
LIBRARY NAME BUILDING
- BUILD_LIB_NAME
- This command helps you to build static and/or shared library
name(s) depending on the rules of the host operanding system. - Arguments:
NAME type is 'quoted', name of the library (withoutleading 'lib'). - MAJOR type is 'quoted', major number for the version,
- optional.
- MINOR type is 'quoted', minor number for the version,
- optional.
- SHARED type is 'quoted', variable that will be set with
- the shared library name, optional.
- STATIC type is 'quoted', variable that will be set with
- the static library name, optional.
- VERSION type is 'boolean', boolean value for library ver
- sion processing , optional.
- For example:
BUILD_LIB_NAME {NAME = "test"
STATIC = "TESTLIB_STATIC"
SHARED = "TESTLIB_SHARED"
MAJOR = "0"
MINOR = "2"
VERSION = TRUE- }
- BUILD_SHLIB_NAME
- This command has been obsoleted by the BUILD_LIB_NAME command.
SEE ALSO
- pmk(1), pmkscan(1), pmksyntax.5