pkgconf-personality man page

file.personality ā€” pkgconf cross-compile personality file format

Description

pkgconf cross-compile personality files provide a useful mechanism for storing various information about system toolchains. Information stored by .personality files include information about paths used by a cross-compile toolchain, such as the sysroot directory and default include and library paths. pkgconf uses this information to determine what information is necessary to use libraries.

File Syntax

The .personality file follows a format inspired by RFC822. Comments are prefixed by a pound sign, hash sign or octothorpe (#), and variable assignment is similar to POSIX shell. Properties are defined using RFC822-style stanzas.

Properties

Properties are set using RFC822-style stanzas which consist of a keyword, followed by a colon (:) and then the value the property should be set to. Variable substitution is always performed regardless of property type.

There are two types of property:

Literal

The property will be set to the text of the value.

Fragment List

The property will be set to a list of fragments parsed from the text. The input text must be in a format that is suitable for passing to a POSIX shell without any shell expansions after variable substitution has been done.

Property Keywords

Triplet

The triplet used by the cross-compile toolchain. (mandatory; literal)

SysrootDir

The directory used by the system root of the cross-compile toolchain. (mandatory; literal)

DefaultSearchPaths

A list of directories to look for pc(5) files in. (mandatory; fragment list)

SystemIncludePaths

A list of directories that are included by default in the search path for include files. (mandatory; fragment list)

SystemLibraryPaths

A list of directories that are included by default in the search path for libraries. (mandatory; fragment list)

Examples

An example .personality file:

# This is a comment 
Triplet: x86_64-pc-linux-gnu 
SysrootDir: /home/kaniini/sysroot/x86_64-pc-linux-gnu 
DefaultSearchPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib/pkgconfig \ 
  /home/kaniini/sysroot/x86_64-pc-linux-gnu/share/pkgconfig 
SystemIncludePaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/include 
SystemLibraryPaths: /home/kaniini/sysroot/x86_64-pc-linux-gnu/lib

See Also

pkgconf(1), pkg.m4(7), pc(5)

Info

July 19, 2018