Provided by: pmk_0.10.2-2_i386 bug

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
                     configuration.  Type is ’bool’.  If not specified, it is
                     TRUE by default.

           DEPEND    Specify check dependencies.  Type is ’list’.  A
                     dependency 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:

                   REQUIRED

                   DEPEND

                   DEFS

                   NAME      type is ’quoted’, name of the binary.

                   VARIABLE  type is ’quoted’, variable name to store the
                             path.

     CHECK_HEADER
             Check language header and optionally a function.

             Arguments:

                   REQUIRED

                   DEPEND

                   DEFS

                   LANG

                   NAME      type is ’quoted’, name of the header.

                   MACRO     type is ’list’, list of one or more compiler
                             macros to check, optional.

                   FUNCTION  type is ’quoted’ or ’list’, name or list of
                             functions 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:

                   REQUIRED

                   DEPEND

                   DEFS

                   LANG

                   NAME      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:

                   REQUIRED

                   DEPEND

                   DEFS

                   NAME      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:

                   REQUIRED

                   DEPEND

                   DEFS

                   NAME      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:

                   REQUIRED

                   DEPEND

                   DEFS

                   LANG

                   NAME      type is ’quoted’, name of the type to check.

                   HEADER    type is quoted, name of the header where to find
                             the 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:

                   REQUIRED

                   DEPEND

                   DEFS

                   NAME      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 (without
                            leading ’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
                            version 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