mirror of
https://github.com/cryb-to/cryb-to.git
synced 2024-11-21 13:15:45 +00:00
Continue to refine our build system.
Most importantly, differentiate between library and non-library components. The former can be provided and required, and if provided but disabled, can be replaced by pre-installed versions. The latter can only be provided and cannot be the target of a dependency relationship.
This commit is contained in:
parent
85bf898826
commit
323197908d
3 changed files with 49 additions and 19 deletions
|
@ -202,7 +202,9 @@ CRYB_LIB_PROVIDE([oath], [core digest enc mac rand])
|
|||
CRYB_LIB_PROVIDE([rand], [core])
|
||||
CRYB_LIB_PROVIDE([test], [core])
|
||||
|
||||
CRYB_CHECK_DEPENDENCIES
|
||||
CRYB_LIB_REQUIRE([test])
|
||||
|
||||
CRYB_RESOLVE
|
||||
|
||||
############################################################################
|
||||
#
|
||||
|
|
|
@ -44,6 +44,28 @@ AC_DEFUN([CRYB_INIT], [
|
|||
[enable_all=yes])
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl CRYB_PROVIDE(component-name, [dependencies])
|
||||
dnl --------------------------------------------
|
||||
dnl
|
||||
dnl Declare a non-library component that we provide, and its library
|
||||
dnl dependencies.
|
||||
dnl
|
||||
AC_DEFUN([CRYB_PROVIDE], [
|
||||
m4_define([COMP], m4_toupper([$1]))
|
||||
m4_define([comp], m4_tolower([$1]))
|
||||
m4_set_add([cryb_provides], comp)
|
||||
m4_foreach_w([dep], [$2], [m4_set_add([cryb_requires], dep)])
|
||||
AC_ARG_ENABLE([cryb-]comp,
|
||||
AS_HELP_STRING([--enable-cryb-]comp,
|
||||
[build the ]comp[ component]),
|
||||
[enable_cryb_]comp[=$enableval],
|
||||
[enable_cryb_]comp[=$enable_all])
|
||||
if test [x"$enable_cryb_]comp[" = x"yes"] ; then
|
||||
for dep in $2 ; do eval "cryb_${dep}_needed=yes" ; done
|
||||
fi
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl CRYB_LIB_PROVIDE(library-name, [dependencies])
|
||||
dnl ----------------------------------------------
|
||||
|
@ -54,7 +76,7 @@ AC_DEFUN([CRYB_LIB_PROVIDE], [
|
|||
m4_define([COMP], m4_toupper([$1]))
|
||||
m4_define([comp], m4_tolower([$1]))
|
||||
m4_set_add([cryb_provides], comp)
|
||||
m4_foreach_w([dep], [$2], [m4_set_add([cryb_dependencies], dep)])
|
||||
m4_foreach_w([dep], [$2], [m4_set_add([cryb_requires], dep)])
|
||||
AC_ARG_ENABLE([cryb-]comp,
|
||||
AS_HELP_STRING([--enable-cryb-]comp,
|
||||
[build the ]comp[ library]),
|
||||
|
@ -68,10 +90,6 @@ AC_DEFUN([CRYB_LIB_PROVIDE], [
|
|||
AC_SUBST([CRYB_]COMP[_LIBS],
|
||||
['\$(top_builddir)/lib/]comp[/libcryb-]comp[.la]')
|
||||
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"]])
|
||||
])
|
||||
|
||||
dnl
|
||||
|
@ -82,27 +100,37 @@ dnl Declare a Cryb library that we require.
|
|||
dnl
|
||||
AC_DEFUN([CRYB_LIB_REQUIRE], [
|
||||
m4_foreach_w([dep], [$1], [
|
||||
m4_set_add([cryb_dependencies], dep)
|
||||
m4_set_add([cryb_requires], dep)
|
||||
[cryb_]dep[_needed=yes]
|
||||
])
|
||||
])
|
||||
|
||||
dnl
|
||||
dnl CRYB_CHECK_DEPENDENCIES
|
||||
dnl -----------------------
|
||||
dnl CRYB_RESOLVE
|
||||
dnl ------------
|
||||
dnl
|
||||
dnl Verify that all dependencies have been satisfied.
|
||||
dnl Verify that all dependencies have been satisfied and set automake
|
||||
dnl conditionals to reflect enabled and available components.
|
||||
dnl
|
||||
AC_DEFUN([CRYB_CHECK_DEPENDENCIES], [
|
||||
AC_MSG_CHECKING([required Cryb elements])
|
||||
m4_set_foreach([cryb_dependencies], [dep], [
|
||||
if test [x"$cryb_]dep[_needed" = x"yes"] && \
|
||||
test [x"$enable_cryb_]dep[" != x"yes"] && \
|
||||
test [x"$ax_pc_cv_have_cryb_]dep[" = x""] ; then
|
||||
AX_PKG_CONFIG_REQUIRE([cryb-]dep, [$PACKAGE_VERSION])
|
||||
AC_DEFUN([CRYB_RESOLVE], [
|
||||
AC_MSG_CHECKING([required Cryb components])
|
||||
m4_set_foreach([cryb_requires], [comp], [
|
||||
if test [x"$cryb_]comp[_needed" = x"yes"] && \
|
||||
test [x"$enable_cryb_]comp[" != x"yes"] && \
|
||||
test [x"$ax_pc_cv_have_cryb_]comp[" = x""] ; then
|
||||
AX_PKG_CONFIG_REQUIRE([cryb-]comp, [$PACKAGE_VERSION])
|
||||
fi
|
||||
])
|
||||
AC_MSG_RESULT([ok])
|
||||
AC_MSG_CHECKING([provided Cryb components])
|
||||
m4_set_foreach([cryb_provides], [comp], [
|
||||
m4_define([COMP], m4_toupper(comp))
|
||||
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"]])
|
||||
])
|
||||
AC_MSG_RESULT([ok])
|
||||
])
|
||||
|
||||
dnl
|
||||
|
|
|
@ -3,7 +3,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/include
|
|||
EXTRA_DIST =
|
||||
noinst_HEADERS =
|
||||
|
||||
if CRYB_TEST
|
||||
if HAVE_CRYB_TEST
|
||||
|
||||
# Individual libraries
|
||||
libcipher = $(top_builddir)/lib/cipher/libcryb-cipher.la
|
||||
|
@ -248,4 +248,4 @@ endif CRYB_TEST
|
|||
|
||||
check_PROGRAMS = $(TESTS)
|
||||
|
||||
endif CRYB_TEST
|
||||
endif HAVE_CRYB_TEST
|
||||
|
|
Loading…
Reference in a new issue