PKGCONF-PERSONALITY(5) File Formats Manual PKGCONF-PERSONALITY(5)

# [NAME](#NAME)

`file.personality` — pkgconf cross-compile personality file format

# [DESCRIPTION](#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](#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)

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 three 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. Elements are delimited with a colon.

Boolean

The property will be set to true if the value is one of: true, yes or 1. Otherwise it will be set to false.

## [PROPERTY KEYWORDS](#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)](/man/os/pkgconf/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)

WantDefaultPure

If true, pkgconf will default to preferring a pure dependency graph. (optional; boolean; default is false)

WantDefaultStatic

If true, pkgconf will default to operating in static linking mode. (optional; boolean; default is false)

# [EXAMPLES](#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](#SEE_ALSO)

[pkgconf(1)](/man/os/pkgconf/pkgconf.1), [pc(5)](/man/os/pkgconf/pc.5), [pkg.m4(7)](/man/os/pkgconf/pkg.m4.7)

July 19, 2018 Linux 4.19.0-gvisor

---

Document: pkgconf-personality(5) from pkgconf 3.0.10-r1 (Chainguard OS)
Source: https://github.com/pkgconf/pkgconf
