nut/m4/nut_check_pkgconfig.m4
2022-06-29 12:37:36 +02:00

91 lines
3.1 KiB
Text

dnl Check for LIBPOWERMAN compiler flags. On success, set nut_have_libpowerman="yes"
dnl and set LIBPOWERMAN_CFLAGS and LIBPOWERMAN_LIBS. On failure, set
dnl nut_have_libpowerman="no". This macro can be run multiple times, but will
dnl do the checking only once.
AC_DEFUN([NUT_CHECK_PKGCONFIG],
[
AS_IF([test -z "${nut_have_pkg_config_seen}"], [
nut_have_pkg_config_seen=yes
dnl Note that PKG_CONFIG may be a filename, path,
dnl or either with args - so no quoting here
AC_MSG_CHECKING([whether usable PKG_CONFIG was already detected by autoconf])
AS_IF([test -n "${PKG_CONFIG-}" && test x"${PKG_CONFIG-}" != x"false" && $PKG_CONFIG --help 2>&1 | grep -E '(--cflags|--libs)' >/dev/null],
[AC_MSG_RESULT([yes: ${PKG_CONFIG}])
have_PKG_CONFIG=yes
],
[AC_MSG_RESULT([no])
PKG_CONFIG=false
have_PKG_CONFIG=no
]
)
AS_IF([test x"${PKG_CONFIG-}" = x"false"],
[dnl Some systems have older autotools without direct macro support for PKG_CONF*
have_PKG_CONFIG=yes
AC_PATH_PROG(dummy_PKG_CONFIG, pkg-config)
AC_ARG_WITH(pkg-config,
AS_HELP_STRING([@<:@--with-pkg-config=/path/to/gdlib-config@:>@],
[path to program that reports development package configuration]),
[
case "${withval}" in
"") ;;
yes|no)
AC_MSG_ERROR(invalid option --with(out)-pkg-config - see docs/configure.txt)
;;
*)
dummy_PKG_CONFIG="${withval}"
;;
esac
])
AC_MSG_CHECKING([whether usable PKG_CONFIG is present in PATH or was set by caller])
AS_IF([test x"$dummy_PKG_CONFIG" = xno || test -z "$dummy_PKG_CONFIG"],
[AC_MSG_RESULT([no])
PKG_CONFIG=false
have_PKG_CONFIG=no
],
[AS_IF([$dummy_PKG_CONFIG --help 2>&1 | grep -E '(--cflags|--libs)' >/dev/null],
[AC_MSG_RESULT([yes: ${dummy_PKG_CONFIG}])
have_PKG_CONFIG=yes
PKG_CONFIG="$dummy_PKG_CONFIG"
],
[AC_MSG_RESULT([no])
PKG_CONFIG=false
have_PKG_CONFIG=no
]
)]
)]
)
have_PKG_CONFIG_MACROS=no
AS_IF([test x"$have_PKG_CONFIG" = xyes],
[AC_MSG_NOTICE([checking for autoconf macro support of pkg-config (${PKG_CONFIG})])
dummy_RES=0
ifdef([PKG_PROG_PKG_CONFIG], [], [dummy_RES=1])
ifdef([PKG_CHECK_MODULES], [], [dummy_RES=2])
AS_IF([test "${dummy_RES}" = 0],
[AC_MSG_NOTICE([checking for autoconf macro support of pkg-config module checker])
dnl The m4 macro below may be not defined if pkg-config package is not
dnl installed. Use of ifdef (here and below for e.g. CPPUNIT check)
dnl allows to avoid shell syntax errors in generated configure script
dnl by defining a dummy macro in-place.
ifdef([PKG_CHECK_MODULES], [], [AC_DEFUN([PKG_CHECK_MODULES], [false])])
PKG_CHECK_MODULES([dummy_PKG_CONFIG], [pkg-config], [have_PKG_CONFIG_MACROS=yes])
]
)]
)
AS_IF([test x"$have_PKG_CONFIG" = xno],
[AC_MSG_WARN([pkg-config program is needed to look for further dependencies (will be skipped)])
PKG_CONFIG="false"
],
[AS_IF([test x"$have_PKG_CONFIG_MACROS" = xno],
[AC_MSG_WARN([pkg-config macros are needed to look for further dependencies, but in some cases pkg-config program can be used directly])]
)]
)
]) dnl if nut_have_pkg_config_seen
])