.TH FREETYPE-CONFIG 1 "June 2015" "FreeType 2.6"
.
.
.SH NAME
.
freetype-config \- Get information about a libfreetype installation
.
.
.SH SYNOPSIS
.
.B freetype-config
.RI [ options ]
.
.
.SH DESCRIPTION
.
.B freetype-config
returns information needed for compiling and linking programs with the
FreeType library, such as linker flags and compilation parameters.
.
Alternatively, it can be used to query information about the
FreeType library version installed on the system, such as the
installation (directory path) prefix or the FreeType version number.
.
.PP
This program is part of the FreeType package.
.
.
.SH OPTIONS
.
There are two types of options: output/display selection options, and
path override options.
.
.
.SS Output selection options
.
Only one of the output selection options should be given at each program
invocation.
.
.TP
.B \-\-prefix
Return the prefix value of the installed FreeType library (the default
prefix will be `/usr' in most cases for distribution-installed
packages).
.
.TP
.B \-\-exec-prefix
Return the executable prefix value of the installed FreeType library
(will often be the same as the prefix value).
.
.TP
.B \-\-ftversion
Return the FreeType version number.
.
.TP
.B \-\-version
Return the `libtool version' of the FreeType library.
.
.TP
.B \-\-libtool
Return the library name for linking with libtool.
.
.TP
.B \-\-libs
Return compiler flags for linking with the installed FreeType library.
.
.TP
.B \-\-cflags
Return compiler flags for compiling against the installed FreeType library.
.
.TP
.B \-\-static
Make command line options display flags for static linking.
.
.
.SS Path override options
.
These affect any selected output option, except the libtool version
returned by `--version'.
.
.TP
.BI \-\-prefix= PREFIX
Override `--prefix' value with
.IR PREFIX .
.
.TP
.BI \-\-exec-prefix= EPREFIX
Override `--exec-prefix' value with
.IR EPREFIX .
.
.
.SH BUGS
In case the libraries FreeType links to are located in non-standard
directories, the output from option
.B \-\-libs
might be incomplete.
It is thus recommended to use the
.BR pkg-config (1)
interface instead, which is able to correctly resolve all dependencies.
.
.
.SH AUTHOR
.
This manual page was contributed by Nis Martensen <nis.martensen@web.de>,
with further refinements from the FreeType team.
.
.
.\" eof
