mkpkgconfig - create pkg-config metadata files


version v2.0.1


mkpkgconfig options


mkpkgconfig creates a pkg-config metadata (.pc) file. pkg-config variables and keywords are defined on the command line, variable dependencies are validated, and the configuration file is output. "Standard" variables (such as $libdir, $datadir) may be automatically created, and only variables which are used are output.

Variables and Keywords

pkg-config distinguishes between variables and keywords. Values for both may include interpolated variables, as in Cflags: -I ${include}.

Some commonly used variables have dedicated command line options:

  --prefix     : base prefix for paths
  --package    : filesystem compatible package name
  --modversion : package version

(--modversion sets the version variable; the --version flag will output the version of mkpkgconfig).

--modversion is required. --prefix and --package may be required if a keyword requires them or --auto is set and auto-generated variables require it.

Common keywords also have dedicated options:


The --Name and --Description options are required. The Version keyword is automatically set to ${version}. It is not possible to set it directly from the command line.

Other variables and keywords may be specified via the --var and --kwd options, respectively:

  --var name=value
  --kwd name=value

which may be used more than once.

Automatically Generated Variables

mkpkgconfig can automatically generate a number of "standard" variables, such as bindir, libdir, etc, based upon the prefix variable. Use the "--list-auto" option to output a list of these variables.


General Options


Where the configuration file is to be written. It defaults to the standard output stream.

--usevars all|requested|needed

Which variables should be output. It defaults to needed.


output all variables, needed or not, including automatically generated ones if --auto was specified;


output only requested variables (via--var variable=value or --auto=variable,...) and keyword dependencies;


output only those variables actually used by keywords


--var name=value

Set the variable named name to value.

--prefix value

Set the prefix variable.

--package value

Set the package variable

--modversion value

Set the version value

--auto list of variables

Generate a set of variables. Use --list-auto to see what is generated.

If passed a list of variable names, those will be output if --usevars is set to requested.

Individual variables may be overriden using --var.


Output a list of the automatically generated keywords and exit.


--kwd name=value

Set the keyword named name to value.

--Name value
--name value

Set the Name keyword. This parameter is required.

--Description value
--description value

Set the Description keyword. This parameter is required.

--Requires value
--requires value

Set the Requires keyword.

--Conflicts value
--conflicts value

Set the Conflicts keyword.

--Libs value
--libs value

Set the Libs keyword.

--Cflags value
--cflags value

Set the Cflags keyword.



Output the version of mkpkgconfig and exit.


Output a short help message and exit.


Output the manual and exit.



Please report any bugs or feature requests to or through the web interface at:


Source is available at

and may be cloned from


Diab Jerius <>


This software is Copyright (c) 2020 by Smithsonian Astrophysical Observatory.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007