Don't invoke pkg-config unnecessarily.

Previously, we always invoked AX_PKG_CONFIG_CHECK() for a disabled component (i.e. a component which we provide but which was disabled on the configure command line).  This is both excessive (because we only need to run this check for components that will be needed during the build) and insufficient (because we also need to run it for components from other Cryb projects).
This commit is contained in:
Dag-Erling Smørgrav 2018-05-11 17:45:58 +02:00
parent 68809ea833
commit 85bf898826

View file

@ -54,22 +54,23 @@ AC_DEFUN([CRYB_LIB_PROVIDE], [
m4_define([COMP], m4_toupper([$1])) m4_define([COMP], m4_toupper([$1]))
m4_define([comp], m4_tolower([$1])) m4_define([comp], m4_tolower([$1]))
m4_set_add([cryb_provides], comp) m4_set_add([cryb_provides], comp)
m4_foreach_w([req], [$2], [m4_set_add([cryb_requires], req)]) m4_foreach_w([dep], [$2], [m4_set_add([cryb_dependencies], dep)])
AC_ARG_ENABLE([cryb-]comp, AC_ARG_ENABLE([cryb-]comp,
AS_HELP_STRING([--enable-cryb-]comp, AS_HELP_STRING([--enable-cryb-]comp,
[build the ]comp[ library]), [build the ]comp[ library]),
[enable_cryb_]comp[=$enableval], [enable_cryb_]comp[=$enableval],
[enable_cryb_]comp[=$enable_all]) [enable_cryb_]comp[=$enable_all])
if test [x"$enable_cryb_]comp[" = x"yes"] ; then if test [x"$enable_cryb_]comp[" = x"yes"] ; then
for dep in $2 ; do eval "cryb_${dep}_needed=yes" ; done
AC_DEFINE([HAVE_CRYB_]COMP, [1], [Define to 1 if you have $1]) AC_DEFINE([HAVE_CRYB_]COMP, [1], [Define to 1 if you have $1])
AC_SUBST([CRYB_]COMP[_VERSION], [$PACKAGE_VERSION]) AC_SUBST([CRYB_]COMP[_VERSION], [$PACKAGE_VERSION])
AC_SUBST([CRYB_]COMP[_CFLAGS], []) AC_SUBST([CRYB_]COMP[_CFLAGS], [])
AC_SUBST([CRYB_]COMP[_LIBS], AC_SUBST([CRYB_]COMP[_LIBS],
['\$(top_builddir)/lib/]comp[/libcryb-]comp[.la]') ['\$(top_builddir)/lib/]comp[/libcryb-]comp[.la]')
AM_CONDITIONAL([HAVE_CRYB_]COMP, [true])
else
AX_PKG_CONFIG_CHECK([cryb-]comp, [$PACKAGE_VERSION])
fi fi
AM_CONDITIONAL([HAVE_CRYB_]COMP, [
test [x"$enable_cryb_]comp[" = x"yes"] && \
test [x"$ax_pc_cv_have_cryb_]comp[" = x"yes"]])
AM_CONDITIONAL([CRYB_]COMP, [test [x"$enable_cryb_]comp[" = x"yes"]]) AM_CONDITIONAL([CRYB_]COMP, [test [x"$enable_cryb_]comp[" = x"yes"]])
]) ])
@ -80,7 +81,10 @@ dnl
dnl Declare a Cryb library that we require. dnl Declare a Cryb library that we require.
dnl dnl
AC_DEFUN([CRYB_LIB_REQUIRE], [ AC_DEFUN([CRYB_LIB_REQUIRE], [
m4_foreach_w([req], [$1], [m4_set_add([cryb_requires], req)]) m4_foreach_w([dep], [$1], [
m4_set_add([cryb_dependencies], dep)
[cryb_]dep[_needed=yes]
])
]) ])
dnl dnl
@ -91,10 +95,11 @@ dnl Verify that all dependencies have been satisfied.
dnl dnl
AC_DEFUN([CRYB_CHECK_DEPENDENCIES], [ AC_DEFUN([CRYB_CHECK_DEPENDENCIES], [
AC_MSG_CHECKING([required Cryb elements]) AC_MSG_CHECKING([required Cryb elements])
m4_set_foreach([cryb_requires], [req], [ m4_set_foreach([cryb_dependencies], [dep], [
if test [x"$enable_cryb_]req[" != x"yes"] && \ if test [x"$cryb_]dep[_needed" = x"yes"] && \
test [x"$ax_pc_cv_have_cryb_]req[" != x"yes"] ; then test [x"$enable_cryb_]dep[" != x"yes"] && \
AC_MSG_ERROR([missing cryb-]req) test [x"$ax_pc_cv_have_cryb_]dep[" = x""] ; then
AX_PKG_CONFIG_REQUIRE([cryb-]dep, [$PACKAGE_VERSION])
fi fi
]) ])
AC_MSG_RESULT([ok]) AC_MSG_RESULT([ok])