1 # generated automatically by aclocal 1.18.1 -*- Autoconf -*- 2 3 # Copyright (C) 1996-2025 Free Software Foundation, Inc. 4 5 # This file is free software; the Free Software Foundation 6 # gives unlimited permission to copy and/or distribute it, 7 # with or without modifications, as long as this notice is preserved. 8 9 # This program is distributed in the hope that it will be useful, 10 # but WITHOUT ANY WARRANTY, to the extent permitted by law; without 11 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A 12 # PARTICULAR PURPOSE. 13 14 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) 15 # pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*- 16 # serial 13 (pkgconf) 17 18 dnl Copyright 2004 Scott James Remnant <scott (a] netsplit.com>. 19 dnl Copyright 2012-2015 Dan Nicholson <dbn.lists (a] gmail.com> 20 dnl 21 dnl This program is free software; you can redistribute it and/or modify 22 dnl it under the terms of the GNU General Public License as published by 23 dnl the Free Software Foundation; either version 2 of the License, or 24 dnl (at your option) any later version. 25 dnl 26 dnl This program is distributed in the hope that it will be useful, but 27 dnl WITHOUT ANY WARRANTY; without even the implied warranty of 28 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 29 dnl General Public License for more details. 30 dnl 31 dnl You should have received a copy of the GNU General Public License 32 dnl along with this program; if not, see <https://www.gnu.org/licenses/>. 33 dnl 34 dnl As a special exception to the GNU General Public License, if you 35 dnl distribute this file as part of a program that contains a 36 dnl configuration script generated by Autoconf, you may include it under 37 dnl the same distribution terms that you use for the rest of that 38 dnl program. 39 40 dnl PKG_PREREQ(MIN-VERSION) 41 dnl ----------------------- 42 dnl Since: 0.29 43 dnl 44 dnl Verify that the version of the pkg-config macros are at least 45 dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's 46 dnl installed version of pkg-config, this checks the developer's version 47 dnl of pkg.m4 when generating configure. 48 dnl 49 dnl To ensure that this macro is defined, also add: 50 dnl m4_ifndef([PKG_PREREQ], 51 dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) 52 dnl 53 dnl See the "Since" comment for each macro you use to see what version 54 dnl of the macros you require. 55 m4_defun([PKG_PREREQ], 56 [m4_define([PKG_MACROS_VERSION], [0.29.2]) 57 m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, 58 [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) 59 ])dnl PKG_PREREQ 60 61 dnl PKG_PROG_PKG_CONFIG([MIN-VERSION], [ACTION-IF-NOT-FOUND]) 62 dnl --------------------------------------------------------- 63 dnl Since: 0.16 64 dnl 65 dnl Search for the pkg-config tool and set the PKG_CONFIG variable to 66 dnl first found in the path. Checks that the version of pkg-config found 67 dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is 68 dnl used since that's the first version where most current features of 69 dnl pkg-config existed. 70 dnl 71 dnl If pkg-config is not found or older than specified, it will result 72 dnl in an empty PKG_CONFIG variable. To avoid widespread issues with 73 dnl scripts not checking it, ACTION-IF-NOT-FOUND defaults to aborting. 74 dnl You can specify [PKG_CONFIG=false] as an action instead, which would 75 dnl result in pkg-config tests failing, but no bogus error messages. 76 AC_DEFUN([PKG_PROG_PKG_CONFIG], 77 [m4_pattern_forbid([^_?PKG_[A-Z_]+$]) 78 m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) 79 m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) 80 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) 81 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) 82 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) 83 84 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then 85 AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) 86 fi 87 if test -n "$PKG_CONFIG"; then 88 _pkg_min_version=m4_default([$1], [0.9.0]) 89 AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) 90 if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then 91 AC_MSG_RESULT([yes]) 92 else 93 AC_MSG_RESULT([no]) 94 PKG_CONFIG="" 95 fi 96 fi 97 if test -z "$PKG_CONFIG"; then 98 m4_default([$2], [AC_MSG_ERROR([pkg-config not found])]) 99 fi[]dnl 100 ])dnl PKG_PROG_PKG_CONFIG 101 102 dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 103 dnl ------------------------------------------------------------------- 104 dnl Since: 0.18 105 dnl 106 dnl Check to see whether a particular set of modules exists. Similar to 107 dnl PKG_CHECK_MODULES(), but does not set variables or print errors. 108 dnl 109 dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 110 dnl only at the first occurrence in configure.ac, so if the first place 111 dnl it's called might be skipped (such as if it is within an "if", you 112 dnl have to call PKG_CHECK_EXISTS manually 113 AC_DEFUN([PKG_CHECK_EXISTS], 114 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 115 if test -n "$PKG_CONFIG" && \ 116 AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then 117 m4_default([$2], [:]) 118 m4_ifvaln([$3], [else 119 $3])dnl 120 fi]) 121 122 dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) 123 dnl --------------------------------------------- 124 dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting 125 dnl pkg_failed based on the result. 126 m4_define([_PKG_CONFIG], 127 [if test -n "$$1"; then 128 pkg_cv_[]$1="$$1" 129 elif test -n "$PKG_CONFIG"; then 130 PKG_CHECK_EXISTS([$3], 131 [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` 132 test "x$?" != "x0" && pkg_failed=yes ], 133 [pkg_failed=yes]) 134 else 135 pkg_failed=untried 136 fi[]dnl 137 ])dnl _PKG_CONFIG 138 139 dnl _PKG_SHORT_ERRORS_SUPPORTED 140 dnl --------------------------- 141 dnl Internal check to see if pkg-config supports short errors. 142 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], 143 [AC_REQUIRE([PKG_PROG_PKG_CONFIG]) 144 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then 145 _pkg_short_errors_supported=yes 146 else 147 _pkg_short_errors_supported=no 148 fi[]dnl 149 ])dnl _PKG_SHORT_ERRORS_SUPPORTED 150 151 152 dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 153 dnl [ACTION-IF-NOT-FOUND]) 154 dnl -------------------------------------------------------------- 155 dnl Since: 0.4.0 156 dnl 157 dnl Note that if there is a possibility the first call to 158 dnl PKG_CHECK_MODULES might not happen, you should be sure to include an 159 dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac 160 AC_DEFUN([PKG_CHECK_MODULES], 161 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 162 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl 163 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl 164 165 pkg_failed=no 166 AC_MSG_CHECKING([for $2]) 167 168 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) 169 _PKG_CONFIG([$1][_LIBS], [libs], [$2]) 170 171 m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS 172 and $1[]_LIBS to avoid the need to call pkg-config. 173 See the pkg-config man page for more details.]) 174 175 if test $pkg_failed = yes; then 176 AC_MSG_RESULT([no]) 177 _PKG_SHORT_ERRORS_SUPPORTED 178 if test $_pkg_short_errors_supported = yes; then 179 $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` 180 else 181 $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` 182 fi 183 # Put the nasty error message in config.log where it belongs 184 echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD 185 186 m4_default([$4], [AC_MSG_ERROR( 187 [Package requirements ($2) were not met: 188 189 $$1_PKG_ERRORS 190 191 Consider adjusting the PKG_CONFIG_PATH environment variable if you 192 installed software in a non-standard prefix. 193 194 _PKG_TEXT])[]dnl 195 ]) 196 elif test $pkg_failed = untried; then 197 AC_MSG_RESULT([no]) 198 m4_default([$4], [AC_MSG_FAILURE( 199 [The pkg-config script could not be found or is too old. Make sure it 200 is in your PATH or set the PKG_CONFIG environment variable to the full 201 path to pkg-config. 202 203 _PKG_TEXT 204 205 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl 206 ]) 207 else 208 $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS 209 $1[]_LIBS=$pkg_cv_[]$1[]_LIBS 210 AC_MSG_RESULT([yes]) 211 $3 212 fi[]dnl 213 ])dnl PKG_CHECK_MODULES 214 215 216 dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], 217 dnl [ACTION-IF-NOT-FOUND]) 218 dnl --------------------------------------------------------------------- 219 dnl Since: 0.29 220 dnl 221 dnl Checks for existence of MODULES and gathers its build flags with 222 dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags 223 dnl and VARIABLE-PREFIX_LIBS from --libs. 224 dnl 225 dnl Note that if there is a possibility the first call to 226 dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to 227 dnl include an explicit call to PKG_PROG_PKG_CONFIG in your 228 dnl configure.ac. 229 AC_DEFUN([PKG_CHECK_MODULES_STATIC], 230 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 231 _save_PKG_CONFIG=$PKG_CONFIG 232 PKG_CONFIG="$PKG_CONFIG --static" 233 PKG_CHECK_MODULES($@) 234 PKG_CONFIG=$_save_PKG_CONFIG[]dnl 235 ])dnl PKG_CHECK_MODULES_STATIC 236 237 238 dnl PKG_INSTALLDIR([DIRECTORY]) 239 dnl ------------------------- 240 dnl Since: 0.27 241 dnl 242 dnl Substitutes the variable pkgconfigdir as the location where a module 243 dnl should install pkg-config .pc files. By default the directory is 244 dnl $libdir/pkgconfig, but the default can be changed by passing 245 dnl DIRECTORY. The user can override through the --with-pkgconfigdir 246 dnl parameter. 247 AC_DEFUN([PKG_INSTALLDIR], 248 [m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) 249 m4_pushdef([pkg_description], 250 [pkg-config installation directory @<:@]pkg_default[@:>@]) 251 AC_ARG_WITH([pkgconfigdir], 252 [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, 253 [with_pkgconfigdir=]pkg_default) 254 AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) 255 m4_popdef([pkg_default]) 256 m4_popdef([pkg_description]) 257 ])dnl PKG_INSTALLDIR 258 259 260 dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) 261 dnl -------------------------------- 262 dnl Since: 0.27 263 dnl 264 dnl Substitutes the variable noarch_pkgconfigdir as the location where a 265 dnl module should install arch-independent pkg-config .pc files. By 266 dnl default the directory is $datadir/pkgconfig, but the default can be 267 dnl changed by passing DIRECTORY. The user can override through the 268 dnl --with-noarch-pkgconfigdir parameter. 269 AC_DEFUN([PKG_NOARCH_INSTALLDIR], 270 [m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) 271 m4_pushdef([pkg_description], 272 [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) 273 AC_ARG_WITH([noarch-pkgconfigdir], 274 [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, 275 [with_noarch_pkgconfigdir=]pkg_default) 276 AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) 277 m4_popdef([pkg_default]) 278 m4_popdef([pkg_description]) 279 ])dnl PKG_NOARCH_INSTALLDIR 280 281 282 dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, 283 dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 284 dnl ------------------------------------------- 285 dnl Since: 0.28 286 dnl 287 dnl Retrieves the value of the pkg-config variable for the given module. 288 AC_DEFUN([PKG_CHECK_VAR], 289 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl 290 AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl 291 292 _PKG_CONFIG([$1], [variable="][$3]["], [$2]) 293 AS_VAR_COPY([$1], [pkg_cv_][$1]) 294 295 AS_VAR_IF([$1], [""], [$5], [$4])dnl 296 ])dnl PKG_CHECK_VAR 297 298 dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, 299 dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], 300 dnl [DESCRIPTION], [DEFAULT]) 301 dnl ------------------------------------------ 302 dnl 303 dnl Prepare a "--with-" configure option using the lowercase 304 dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and 305 dnl PKG_CHECK_MODULES in a single macro. 306 AC_DEFUN([PKG_WITH_MODULES], 307 [ 308 m4_pushdef([with_arg], m4_tolower([$1])) 309 310 m4_pushdef([description], 311 [m4_default([$5], [build with ]with_arg[ support])]) 312 313 m4_pushdef([def_arg], [m4_default([$6], [auto])]) 314 m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) 315 m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) 316 317 m4_case(def_arg, 318 [yes],[m4_pushdef([with_without], [--without-]with_arg)], 319 [m4_pushdef([with_without],[--with-]with_arg)]) 320 321 AC_ARG_WITH(with_arg, 322 AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, 323 [AS_TR_SH([with_]with_arg)=def_arg]) 324 325 AS_CASE([$AS_TR_SH([with_]with_arg)], 326 [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], 327 [auto],[PKG_CHECK_MODULES([$1],[$2], 328 [m4_n([def_action_if_found]) $3], 329 [m4_n([def_action_if_not_found]) $4])]) 330 331 m4_popdef([with_arg]) 332 m4_popdef([description]) 333 m4_popdef([def_arg]) 334 335 ])dnl PKG_WITH_MODULES 336 337 dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, 338 dnl [DESCRIPTION], [DEFAULT]) 339 dnl ----------------------------------------------- 340 dnl 341 dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES 342 dnl check._[VARIABLE-PREFIX] is exported as make variable. 343 AC_DEFUN([PKG_HAVE_WITH_MODULES], 344 [ 345 PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) 346 347 AM_CONDITIONAL([HAVE_][$1], 348 [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) 349 ])dnl PKG_HAVE_WITH_MODULES 350 351 dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, 352 dnl [DESCRIPTION], [DEFAULT]) 353 dnl ------------------------------------------------------ 354 dnl 355 dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after 356 dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make 357 dnl and preprocessor variable. 358 AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], 359 [ 360 PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) 361 362 AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], 363 [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) 364 ])dnl PKG_HAVE_DEFINE_WITH_MODULES 365 366