Changeset View
Changeset View
Standalone View
Standalone View
contrib/openpam/m4/ax_pkg_config.m4
- This file was added.
dnl -*- autoconf -*- | |||||
dnl | |||||
dnl Copyright (c) 2017 The University of Oslo | |||||
dnl All rights reserved. | |||||
dnl | |||||
dnl Redistribution and use in source and binary forms, with or without | |||||
dnl modification, are permitted provided that the following conditions | |||||
dnl are met: | |||||
dnl 1. Redistributions of source code must retain the above copyright | |||||
dnl notice, this list of conditions and the following disclaimer. | |||||
dnl 2. Redistributions in binary form must reproduce the above copyright | |||||
dnl notice, this list of conditions and the following disclaimer in the | |||||
dnl documentation and/or other materials provided with the distribution. | |||||
dnl 3. The name of the author may not be used to endorse or promote | |||||
dnl products derived from this software without specific prior written | |||||
dnl permission. | |||||
dnl | |||||
dnl THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |||||
dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||||
dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||||
dnl ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||||
dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||||
dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||||
dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||||
dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||||
dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||||
dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
dnl SUCH DAMAGE. | |||||
dnl | |||||
m4_define([AX_PKG_CONFIG_MACROS_VERSION], [0.20170404]) | |||||
dnl | |||||
dnl AX_PROG_PKG_CONFIG([min-version]) | |||||
dnl --------------------------------- | |||||
dnl | |||||
dnl Verify that pkgconf or pkg-config are present. | |||||
dnl | |||||
AC_DEFUN([AX_PROG_PKG_CONFIG], [ | |||||
m4_pattern_forbid([^AX_PKG_CONFIG_[A-Z_]+$]) | |||||
AC_ARG_VAR([PKG_CONFIG], [path to pkg-config binary]) | |||||
AC_ARG_VAR([PKG_CONFIG_PATH], [list of directories to prepend to default search path]) | |||||
AC_ARG_VAR([PKG_CONFIG_LIBDIR], [list of directories to search instead of default search path]) | |||||
if test x"${PKG_CONFIG}" = x"" ; then | |||||
AC_PATH_PROGS([PKG_CONFIG], [pkgconf pkg-config]) >/dev/null | |||||
else | |||||
AC_PATH_PROG([PKG_CONFIG], [${PKG_CONFIG}]) | |||||
fi | |||||
AC_MSG_CHECKING([for pkg-config or pkgconf]) | |||||
if test -x "${PKG_CONFIG}" ; then | |||||
AC_MSG_RESULT([${PKG_CONFIG}]) | |||||
case "${PKG_CONFIG}" in | |||||
*pkgconf) | |||||
_min_version="m4_default([$1], [1.3.0])" | |||||
;; | |||||
*pkg-config) | |||||
_min_version="m4_default([$1], [0.23])" | |||||
;; | |||||
*) | |||||
_min_version="9.9.error" | |||||
;; | |||||
esac | |||||
AC_MSG_CHECKING([that ${PKG_CONFIG} is at least version ${_min_version}]) | |||||
_act_version=`"${PKG_CONFIG}" --version` | |||||
if ! "${PKG_CONFIG}" --atleast-pkgconfig-version="${_min_version}" ; then | |||||
PKG_CONFIG="" | |||||
fi | |||||
AC_MSG_RESULT([${_act_version}]) | |||||
else | |||||
AC_MSG_RESULT([no]) | |||||
PKG_CONFIG="" | |||||
fi | |||||
if test x"${PKG_CONFIG}" = x"" ; then | |||||
AC_MSG_ERROR([pkg-config was not found or is too old]) | |||||
fi | |||||
AC_ARG_WITH([pkgconfigdir], | |||||
AS_HELP_STRING([--with-pkgconfigdir], | |||||
[installation directory for .pc files @<:@LIBDIR/pkgconfig@:>@]), | |||||
[pkgconfigdir=$withval], [pkgconfigdir='${libdir}/pkgconfig']) | |||||
AC_SUBST([pkgconfigdir], [$pkgconfigdir]) | |||||
]) | |||||
dnl | |||||
dnl AX_PKG_CONFIG_VAR(package-name, var-name) | |||||
dnl ----------------------------------------- | |||||
dnl | |||||
dnl Retrieve specific pkg-config variables for the specified package. | |||||
dnl | |||||
AC_DEFUN([AX_PKG_CONFIG_VAR], [ | |||||
AC_REQUIRE([AX_PROG_PKG_CONFIG]) | |||||
m4_define([_p], AS_TR_SH([m4_tolower([$1])])) | |||||
m4_case([$2], | |||||
[version], [ax_pc_cv_[]_p[]_version=`"${PKG_CONFIG}" --modversion [$1]`], | |||||
[cflags], [ax_pc_cv_[]_p[]_cflags=`"${PKG_CONFIG}" --cflags [$1]`], | |||||
[libs], [ax_pc_cv_[]_p[]_libs=`"${PKG_CONFIG}" --libs [$1]`], | |||||
[ax_pc_cv_[]_p[]_[$2]=`"${PKG_CONFIG}" --variable=[$2] [$1]`]) | |||||
]) | |||||
dnl | |||||
dnl AX_PKG_CONFIG_CHECK(package-name, | |||||
dnl [action-if-found], [action-if-not-found]) | |||||
dnl ------------------------------------------- | |||||
dnl | |||||
dnl Check if the specified package is installed. If it is, define | |||||
dnl HAVE_PACKAGE, PACKAGE_VERSION, PACKAGE_CFLAGS and PACKAGE_LIBS. | |||||
dnl The specified actions are performed in addition to the standard | |||||
dnl actions. | |||||
dnl | |||||
AC_DEFUN([AX_PKG_CONFIG_CHECK], [ | |||||
AC_REQUIRE([AX_PROG_PKG_CONFIG]) | |||||
m4_define([_P], AS_TR_SH([m4_toupper([$1])])) | |||||
m4_define([_p], AS_TR_SH([m4_tolower([$1])])) | |||||
AC_ARG_VAR(_P[_CFLAGS], [C compiler flags for $1]) | |||||
AC_ARG_VAR(_P[_LIBS], [linker flags for $1]) | |||||
AC_MSG_CHECKING([if $1 is installed]) | |||||
if AC_RUN_LOG(["${PKG_CONFIG}" --exists --print-errors "$1"]) ; then | |||||
AC_MSG_RESULT([yes]) | |||||
[ax_pc_cv_have_]_p=yes | |||||
AC_DEFINE([HAVE_]_P, [1], [Define to 1 if you have $1]) | |||||
dnl | |||||
AC_MSG_CHECKING([$1 version]) | |||||
AX_PKG_CONFIG_VAR([$1], [version]) | |||||
AC_SUBST(_P[_VERSION], [$ax_pc_cv_]_p[_version]) | |||||
AC_MSG_RESULT([${ax_pc_cv_]_p[_version:-unknown}]) | |||||
dnl | |||||
AC_MSG_CHECKING([$1 compiler flags]) | |||||
AX_PKG_CONFIG_VAR([$1], [cflags]) | |||||
AC_SUBST(_P[_CFLAGS], [$ax_pc_cv_]_p[_cflags]) | |||||
AC_MSG_RESULT([${ax_pc_cv_]_p[_cflags:-none}]) | |||||
dnl | |||||
AC_MSG_CHECKING([$1 linker flags]) | |||||
AX_PKG_CONFIG_VAR([$1], [libs]) | |||||
AC_SUBST(_P[_LIBS], [$ax_pc_cv_]_p[_libs]) | |||||
AC_MSG_RESULT([${ax_pc_cv_]_p[_libs:-none}]) | |||||
dnl | |||||
m4_default([$2], [:]) | |||||
else | |||||
AC_MSG_RESULT([no]) | |||||
[ax_pc_cv_have_]_p=no | |||||
m4_default([$3], [:]) | |||||
fi | |||||
m4_ifdef([AM_CONDITIONAL], [ | |||||
AM_CONDITIONAL([HAVE_]_P, [test x"$ax_pc_cv_have_]_p[" = x"yes"]) | |||||
]) | |||||
]) | |||||
dnl | |||||
dnl AX_PKG_CONFIG_REQUIRE(package-name) | |||||
dnl ----------------------------------- | |||||
dnl | |||||
dnl As above, but fail if the package is not installed. | |||||
dnl | |||||
AC_DEFUN([AX_PKG_CONFIG_REQUIRE], [ | |||||
AX_PKG_CONFIG_CHECK([$1], [], [ | |||||
AC_MSG_ERROR([cannot proceed without $1]) | |||||
]) | |||||
]) |