xref: /freebsd/contrib/pkgconf/man/pkg.m4.7 (revision a3cefe7f2b4df0f70ff92d4570ce18e517af43ec)
1*a3cefe7fSPierre Pronchery.\" Copyright (c) 2017 pkgconf authors (see AUTHORS).
2*a3cefe7fSPierre Pronchery.\"
3*a3cefe7fSPierre Pronchery.\" Permission to use, copy, modify, and/or distribute this software for any
4*a3cefe7fSPierre Pronchery.\" purpose with or without fee is hereby granted, provided that the above
5*a3cefe7fSPierre Pronchery.\" copyright notice and this permission notice appear in all copies.
6*a3cefe7fSPierre Pronchery.\"
7*a3cefe7fSPierre Pronchery.\" This software is provided 'as is' and without any warranty, express or
8*a3cefe7fSPierre Pronchery.\" implied.  In no event shall the authors be liable for any damages arising
9*a3cefe7fSPierre Pronchery.\" from the use of this software.
10*a3cefe7fSPierre Pronchery.Dd December 5, 2017
11*a3cefe7fSPierre Pronchery.Dt PKG.M4 7
12*a3cefe7fSPierre Pronchery.Os
13*a3cefe7fSPierre Pronchery.Sh NAME
14*a3cefe7fSPierre Pronchery.Nm pkg.m4
15*a3cefe7fSPierre Pronchery.Nd autoconf macros for using pkgconf
16*a3cefe7fSPierre Pronchery.Sh SYNOPSIS
17*a3cefe7fSPierre Pronchery.Nm PKG_PREREQ
18*a3cefe7fSPierre Pronchery.Nm PKG_PROG_PKG_CONFIG
19*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_MODULES
20*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_MODULES_STATIC
21*a3cefe7fSPierre Pronchery.Nm PKG_INSTALLDIR
22*a3cefe7fSPierre Pronchery.Nm PKG_NOARCH_INSTALLDIR
23*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_VAR
24*a3cefe7fSPierre Pronchery.Nm PKG_WITH_MODULES
25*a3cefe7fSPierre Pronchery.Nm PKG_HAVE_WITH_MODULES
26*a3cefe7fSPierre Pronchery.Nm PKG_HAVE_DEFINE_WITH_MODULES
27*a3cefe7fSPierre Pronchery.Sh DESCRIPTION
28*a3cefe7fSPierre Pronchery.Nm
29*a3cefe7fSPierre Proncheryis a collection of autoconf macros which help to configure compiler and linker
30*a3cefe7fSPierre Proncheryflags for development libraries.
31*a3cefe7fSPierre ProncheryThis allows build systems to detect other dependencies and use them with the
32*a3cefe7fSPierre Proncherysystem toolchain.
33*a3cefe7fSPierre Pronchery.Sh "AUTOCONF MACROS"
34*a3cefe7fSPierre Pronchery.Ss "PKG_PREREQ(MIN-VERSION)"
35*a3cefe7fSPierre ProncheryChecks that the version of the
36*a3cefe7fSPierre Pronchery.Nm
37*a3cefe7fSPierre Proncheryautoconf macros in use is at least MIN-VERSION.
38*a3cefe7fSPierre ProncheryThis can be used to ensure a particular
39*a3cefe7fSPierre Pronchery.Nm
40*a3cefe7fSPierre Proncherymacro will be available.
41*a3cefe7fSPierre Pronchery.Ss "PKG_PROG_PKG_CONFIG([MIN-VERSION])"
42*a3cefe7fSPierre ProncheryChecks for an implementation of
43*a3cefe7fSPierre Pronchery.Nm pkg-config
44*a3cefe7fSPierre Proncherywhich is at least MIN-VERSION or newer.
45*a3cefe7fSPierre Pronchery.Ss "PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])"
46*a3cefe7fSPierre Pronchery.Ss "PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]])"
47*a3cefe7fSPierre ProncheryChecks whether a given module set exists, and if so, defines
48*a3cefe7fSPierre Pronchery.Nm CFLAGS
49*a3cefe7fSPierre Proncheryand
50*a3cefe7fSPierre Pronchery.Nm LIBS
51*a3cefe7fSPierre Proncheryvariables prefixed by
52*a3cefe7fSPierre Pronchery.Nm VARIABLE-PREFIX
53*a3cefe7fSPierre Proncherywith the output from
54*a3cefe7fSPierre Pronchery.Fl -cflags
55*a3cefe7fSPierre Proncheryand
56*a3cefe7fSPierre Pronchery.Fl -libs
57*a3cefe7fSPierre Proncheryrespectively.
58*a3cefe7fSPierre Pronchery.Pp
59*a3cefe7fSPierre ProncheryThe optional
60*a3cefe7fSPierre Pronchery.Nm ACTION-IF-FOUND
61*a3cefe7fSPierre Proncheryand
62*a3cefe7fSPierre Pronchery.Nm ACTION-IF-NOT-FOUND
63*a3cefe7fSPierre Proncheryarguments are shell fragments that should be executed if the module set is
64*a3cefe7fSPierre Proncheryfound or not found.
65*a3cefe7fSPierre Pronchery.Pp
66*a3cefe7fSPierre ProncheryIf
67*a3cefe7fSPierre Pronchery.Nm $PKG_CONFIG
68*a3cefe7fSPierre Proncheryis not defined, the
69*a3cefe7fSPierre Pronchery.Nm PKG_PROG_PKG_CONFIG
70*a3cefe7fSPierre Proncherymacro will be executed to locate a
71*a3cefe7fSPierre Pronchery.Nm pkg-config
72*a3cefe7fSPierre Proncheryimplementation.
73*a3cefe7fSPierre Pronchery.Pp
74*a3cefe7fSPierre ProncheryThe
75*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_MODULES_STATIC
76*a3cefe7fSPierre Proncherymacro provides the same behaviour as
77*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_MODULES
78*a3cefe7fSPierre Proncherywith static linking enabled via the
79*a3cefe7fSPierre Pronchery.Fl -static
80*a3cefe7fSPierre Proncheryflag.
81*a3cefe7fSPierre Pronchery.Ss "PKG_INSTALLDIR(DIRECTORY)"
82*a3cefe7fSPierre ProncheryDefines the variable $pkgconfigdir as the location where a package
83*a3cefe7fSPierre Proncheryshould install pkg-config .pc files.
84*a3cefe7fSPierre Pronchery.Pp
85*a3cefe7fSPierre ProncheryBy default the directory is $libdir/pkgconfig, but the default can
86*a3cefe7fSPierre Proncherybe changed by passing the
87*a3cefe7fSPierre Pronchery.Nm DIRECTORY
88*a3cefe7fSPierre Proncheryparameter.
89*a3cefe7fSPierre Pronchery.Pp
90*a3cefe7fSPierre ProncheryThis value can be overridden with the
91*a3cefe7fSPierre Pronchery.Fl -with-pkgconfigdir
92*a3cefe7fSPierre Proncheryconfigure parameter.
93*a3cefe7fSPierre Pronchery.Ss "PKG_NOARCH_INSTALLDIR(DIRECTORY)"
94*a3cefe7fSPierre ProncheryDefines the variable $noarch_pkgconfigdir as the location where a package
95*a3cefe7fSPierre Proncheryshould install pkg-config .pc files.
96*a3cefe7fSPierre Pronchery.Pp
97*a3cefe7fSPierre ProncheryBy default the directory is $datadir/pkgconfig, but the default can
98*a3cefe7fSPierre Proncherybe changed by passing the
99*a3cefe7fSPierre Pronchery.Nm DIRECTORY
100*a3cefe7fSPierre Proncheryparameter.
101*a3cefe7fSPierre Pronchery.Pp
102*a3cefe7fSPierre ProncheryThis value can be overridden with the
103*a3cefe7fSPierre Pronchery.Fl -with-noarch-pkgconfigdir
104*a3cefe7fSPierre Proncheryconfigure parameter.
105*a3cefe7fSPierre Pronchery.Ss "PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])"
106*a3cefe7fSPierre ProncheryRetrieves the value of the
107*a3cefe7fSPierre Pronchery.Nm pkg-config
108*a3cefe7fSPierre Proncheryvariable
109*a3cefe7fSPierre Pronchery.Nm CONFIG-VARIABLE
110*a3cefe7fSPierre Proncheryfrom
111*a3cefe7fSPierre Pronchery.Nm MODULE
112*a3cefe7fSPierre Proncheryand stores it in the
113*a3cefe7fSPierre Pronchery.Nm VARIABLE
114*a3cefe7fSPierre Proncheryvariable.
115*a3cefe7fSPierre Pronchery.Pp
116*a3cefe7fSPierre ProncheryNote that repeated usage of
117*a3cefe7fSPierre Pronchery.Nm VARIABLE
118*a3cefe7fSPierre Proncheryis not recommended as the check will be skipped if the variable is
119*a3cefe7fSPierre Proncheryalready set.
120*a3cefe7fSPierre Pronchery.Ss "PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], [DESCRIPTION], [DEFAULT])"
121*a3cefe7fSPierre ProncheryPrepares a "--with-" configure option using the lowercase
122*a3cefe7fSPierre Pronchery.Nm VARIABLE-PREFIX
123*a3cefe7fSPierre Proncheryname, merging the behaviour of
124*a3cefe7fSPierre Pronchery.Nm AC_ARG_WITH
125*a3cefe7fSPierre Proncheryand
126*a3cefe7fSPierre Pronchery.Nm PKG_CHECK_MODULES
127*a3cefe7fSPierre Proncheryin a single macro.
128*a3cefe7fSPierre Pronchery.Ss "PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, [DESCRIPTION], [DEFAULT])"
129*a3cefe7fSPierre ProncheryConvenience macro to trigger
130*a3cefe7fSPierre Pronchery.Nm AM_CONDITIONAL
131*a3cefe7fSPierre Proncheryafter a
132*a3cefe7fSPierre Pronchery.Nm PKG_WITH_MODULES check.\&
133*a3cefe7fSPierre Pronchery.Nm VARIABLE-PREFIX
134*a3cefe7fSPierre Proncheryis exported as a make variable.
135*a3cefe7fSPierre Pronchery.Ss "PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, [DESCRIPTION], [DEFAULT])"
136*a3cefe7fSPierre ProncheryConvenience macro to trigger
137*a3cefe7fSPierre Pronchery.Nm AM_CONDITIONAL
138*a3cefe7fSPierre Proncheryand
139*a3cefe7fSPierre Pronchery.Nm AC_DEFINE
140*a3cefe7fSPierre Proncheryafter a
141*a3cefe7fSPierre Pronchery.Nm PKG_WITH_MODULES check.\&
142*a3cefe7fSPierre Pronchery.Nm VARIABLE-PREFIX
143*a3cefe7fSPierre Proncheryis exported as a make variable.
144