From f9c8ce7c65a375891d979ed81e453f6d3427a534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dag-Erling=20Sm=C3=B8rgrav?= Date: Mon, 14 Dec 2015 18:08:22 +0100 Subject: [PATCH] Build system overhaul --- autogen.des | 5 +- configure.ac | 193 +++++++++++++++++++++++++++++++-------- include/cryb/Makefile.am | 115 +++++++++++++++++------ include/cryb/enc.h | 36 ++++++++ include/cryb/mac.h | 35 +++++++ include/cryb/to.h | 2 + include/cryb/version.h | 4 +- lib/Makefile.am | 61 ++++++++++--- lib/cpe/Makefile.am | 3 + lib/oath/Makefile.am | 3 +- t/Makefile.am | 44 ++++++--- 11 files changed, 401 insertions(+), 100 deletions(-) create mode 100644 include/cryb/enc.h create mode 100644 include/cryb/mac.h diff --git a/autogen.des b/autogen.des index e76337d..8b237eb 100755 --- a/autogen.des +++ b/autogen.des @@ -30,8 +30,9 @@ fi . ./autogen.sh ./configure \ - --with-openssl \ - --with-rsaref \ + --enable-all \ + --enable-openssl-tests \ + --enable-rsaref-tests \ --enable-developer-warnings \ --enable-werror \ "$@" diff --git a/configure.ac b/configure.ac index 303a148..219d0ad 100644 --- a/configure.ac +++ b/configure.ac @@ -80,57 +80,29 @@ AC_SUBST(RT_LIBS) # # Documentation -AC_ARG_WITH([doc], - AC_HELP_STRING([--without-doc], +AC_ARG_ENABLE([doc], + AC_HELP_STRING([--disable-doc], [do not build the documentation]), [], [with_doc=yes]) AM_CONDITIONAL([WITH_DOC], [test x"$with_doc" = x"yes"]) -# Message digests -AC_ARG_WITH([digest], - AC_HELP_STRING([--without-digest], - [do not build the message digest library and tools]), - [], - [with_digest=yes]) -AM_CONDITIONAL([WITH_DIGEST], [test x"$with_digest" = x"yes"]) - -# Message authentication codes -AC_ARG_WITH([mac], - AC_HELP_STRING([--without-mac], - [do not build the message authentication code library and tools]), - [], - [with_mac=yes]) -AM_CONDITIONAL([WITH_MAC], [test x"$with_digest" = x"yes"]) - -# OATH -AC_ARG_WITH([oath], - AC_HELP_STRING([--without-oath], - [do not build the OATH library and tools]), - [], - [with_oath=yes]) -AM_CONDITIONAL([WITH_OATH], [test x"$with_oath" = x"yes"]) - ############################################################################ # # Debugging # # OpenSSL versions of the unit tests for comparison -AC_ARG_WITH([openssl], - AC_HELP_STRING([--with-openssl], - [build unit tests with OpenSSL support]), - [], - [with_openssl=no]) -AM_CONDITIONAL([WITH_OPENSSL], [test x"$with_openssl" = x"yes"]) +AC_ARG_ENABLE([openssl-tests], + AC_HELP_STRING([--enable-openssl-tests], + [build unit tests with OpenSSL support])) +AM_CONDITIONAL([OPENSSL_TESTS], [test x"$enable_openssl_tests" = x"yes"]) # RSAREF versions of the unit tests for comparison -AC_ARG_WITH([rsaref], - AC_HELP_STRING([--with-rsaref], - [build unit tests with RSAREF support]), - [], - [with_rsaref=no]) -AM_CONDITIONAL([WITH_RSAREF], [test x"$with_rsaref" = x"yes"]) +AC_ARG_ENABLE([rsaref-tests], + AC_HELP_STRING([--enable-rsaref-tests], + [build unit tests enable RSAREF support])) +AM_CONDITIONAL([RSAREF_TESTS], [test x"enable_rsaref_tests" = x"yes"]) # Developer-friendly compiler flags AC_ARG_ENABLE([developer-warnings], @@ -146,6 +118,142 @@ AC_ARG_ENABLE([werror], [use -Werror (default is NO)]), [CFLAGS="${CFLAGS} -Werror"]) +############################################################################ +# +# Components +# + +# Everything +AC_ARG_ENABLE([all], + AC_HELP_STRING([--disable-all], + [disable all libraries and tools]), + [enable_all=$enableval], + [enable_all=yes]) + +# Ciphers +elements="$elements cipher" +requires="$requires cipher:core" +AC_ARG_ENABLE([cryb-cipher], + AC_HELP_STRING([--enable-cryb-cipher], + [build the cipher library]), + [enable_cryb_cipher=$enableval], + [enable_cryb_cipher=$enable_all]) +AM_CONDITIONAL([CRYB_CIPHER], [test x"$enable_cryb_cipher" = x"yes"]) + +# CPE +elements="$elements cpe" +requires="$requires cpe:core" +AC_ARG_ENABLE([cryb-cpe], + AC_HELP_STRING([--enable-cryb-cpe], + [build the CPE library]), + [enable_cryb_cpe=$enableval], + [enable_cryb_cpe=$enable_all]) +AM_CONDITIONAL([CRYB_CPE], [test x"$enable_cryb_cpe" = x"yes"]) + +# Core +elements="$elements core" +AC_ARG_ENABLE([cryb-core], + AC_HELP_STRING([--enable-cryb-core], + [build the core library]), + [enable_cryb_core=$enableval], + [enable_cryb_core=$enable_all]) +AM_CONDITIONAL([CRYB_CORE], [test x"$enable_cryb_core" = x"yes"]) + +# Message digests +elements="$elements digest" +requires="$requires digests:core" +AC_ARG_ENABLE([cryb-digest], + AC_HELP_STRING([--enable-cryb-digest], + [build the message digest library]), + [enable_cryb_digest=$enableval], + [enable_cryb_digest=$enable_all]) +AM_CONDITIONAL([CRYB_DIGEST], [test x"$enable_cryb_digest" = x"yes"]) + +# Encodings +elements="$elements enc" +requires="$requires env:core" +AC_ARG_ENABLE([cryb-enc], + AC_HELP_STRING([--enable-cryb-enc], + [build the encoding library]), + [enable_cryb_enc=$enableval], + [enable_cryb_enc=$enable_all]) +AM_CONDITIONAL([CRYB_ENC], [test x"$enable_cryb_enc" = x"yes"]) + +# Non-cryptographic hashes +elements="$elements hash" +requires="$requires hash:core" +AC_ARG_ENABLE([cryb-hash], + AC_HELP_STRING([--enable-cryb-hash], + [build the non-cryptographic hash library]), + [enable_cryb_hash=$enableval], + [enable_cryb_hash=$enable_all]) +AM_CONDITIONAL([CRYB_HASH], [test x"$enable_cryb_hash" = x"yes"]) + +# Message authentication codes +elements="$elements mac" +requires="$requires mac:core" +AC_ARG_ENABLE([cryb-mac], + AC_HELP_STRING([--enable-cryb-mac], + [build the message authentication code library]), + [enable_cryb_mac=$enableval], + [enable_cryb_mac=$enable_all]) +AM_CONDITIONAL([CRYB_MAC], [test x"$enable_cryb_digest" = x"yes"]) + +# Multiple-precision integers +elements="$elements mpi" +requires="$requires mpi:core" +AC_ARG_ENABLE([cryb-mpi], + AC_HELP_STRING([--enable-cryb-mpi], + [build the multiple-precision math library]), + [enable_cryb_mpi=$enableval], + [enable_cryb_mpi=$enable_all]) +AM_CONDITIONAL([CRYB_MPI], [test x"$enable_cryb_digest" = x"yes"]) + +# OATH +elements="$elements oath" +requires="$requires oath:core oath:digest oath:mac oath:enc" +AC_ARG_ENABLE([cryb-oath], + AC_HELP_STRING([--enable-cryb-oath], + [build the OATH library]), + [enable_cryb_oath=$enableval], + [enable_cryb_oath=$enable_all]) +AM_CONDITIONAL([CRYB_OATH], [test x"$enable_cryb_oath" = x"yes"]) + +# Pseudo-randomness +elements="$elements rand" +requires="$requires rand:core" +AC_ARG_ENABLE([cryb-rand], + AC_HELP_STRING([--enable-cryb-rand], + [build the pseudo-randomness library]), + [enable_cryb_rand=$enableval], + [enable_cryb_rand=$enable_all]) +AM_CONDITIONAL([CRYB_RAND], [test x"$enable_cryb_rand" = x"yes"]) + +# Test framework +elements="$elements test" +requires="$requires test:core" +AC_ARG_ENABLE([cryb-test], + AC_HELP_STRING([--enable-cryb-test], + [build the test framework]), + [enable_cryb_test=$enableval], + [enable_cryb_test=$enable_all]) +AM_CONDITIONAL([CRYB_TEST], [test x"$enable_cryb_test" = x"yes"]) + +# Check dependencies +AC_MSG_CHECKING([dependencies]) +for req in $requires ; do + lhs=${req%:*} + lhs_ena=`eval echo \\\$enable_cryb_$lhs` + if test x"$lhs_ena" = x"yes" ; then + rhs=${req#*:} + rhs_ena=`eval echo \\\$enable_cryb_$rhs` + if test x"$rhs_ena" != x"yes" ; then + AC_MSG_ERROR([cryb-$lhs requires cryb-$rhs]) + fi + fi +done +AC_MSG_RESULT([ok]) + ############################################################################ # # Output @@ -173,3 +281,12 @@ AC_CONFIG_FILES([ AC_CONFIG_FILES([mkpkgng], [chmod +x mkpkgng]) AC_CONFIG_FILES([tools/coverage.sh], [chmod +x tools/coverage.sh]) AC_OUTPUT + +echo +echo The following Cryb components will be built: +echo +for elem in $elements ; do + enable=`eval echo \\\$enable_cryb_$elem` + printf "%16s: %s\n" $elem ${enable:-no} +done +echo diff --git a/include/cryb/Makefile.am b/include/cryb/Makefile.am index 21552f3..b76e377 100644 --- a/include/cryb/Makefile.am +++ b/include/cryb/Makefile.am @@ -1,51 +1,108 @@ crybdir = $(includedir)/cryb -cryb_HEADERS = \ +cryb_HEADERS = + +if CRYB_CIPHER +cryb_HEADERS += \ aes.h \ + rc4.h \ + \ + cipher.h +endif CRYB_CIPHER + +if CRYB_CORE +cryb_HEADERS += \ algorithm.h \ attributes.h \ bitwise.h \ - cipher.h \ - cpe.h \ ctype.h \ - digest.h \ endian.h \ - hash.h \ - hmac.h \ - hmac_sha1.h \ - hmac_sha224.h \ - hmac_sha256.h \ - hmac_sha384.h \ - hmac_sha512.h \ - hotp.h \ + memset_s.h \ + string.h \ + strlcat.h \ + strlcmp.h \ + strlcpy.h \ + version.h \ + wstring.h \ + \ + to.h +endif CRYB_CORE + +if CRYB_CPE +cryb_HEADERS += \ + \ + cpe.h +endif CRYB_CPE + +if CRYB_DIGEST +cryb_HEADERS += \ md.h \ md2.h \ md4.h \ md5.h \ - memset_s.h \ - mpi.h \ - oath.h \ - oath_constants.h \ - oath_types.h \ - rand.h \ - rc4.h \ - rfc3986.h \ - rfc4648.h \ sha.h \ sha1.h \ sha224.h \ sha256.h \ sha384.h \ sha512.h \ - string.h \ - strlcat.h \ - strlcmp.h \ - strlcpy.h \ - test.h \ - to.h \ + \ + digest.h +endif CRYB_DIGEST + +if CRYB_ENC +cryb_HEADERS += \ + rfc3986.h \ + rfc4648.h \ + \ + enc.h +endif CRYB_ENC + +if CRYB_HASH +cryb_HEADERS += \ + \ + hash.h +endif CRYB_HASH + +if CRYB_MAC +cryb_HEADERS += \ + hmac.h \ + hmac_sha1.h \ + hmac_sha224.h \ + hmac_sha256.h \ + hmac_sha384.h \ + hmac_sha512.h \ + \ + mac.h +endif CRYB_MAC + +if CRYB_MPI +cryb_HEADERS += \ + \ + mpi.h +endif CRYB_MPI + +if CRYB_OATH +cryb_HEADERS += \ + hotp.h \ + oath_constants.h \ + oath_types.h \ totp.h \ - version.h \ - wstring.h + \ + oath.h +endif CRYB_OATH + +if CRYB_RAND +cryb_HEADERS += \ + \ + rand.h +endif CRYB_RAND + +if CRYB_TEST +cryb_HEADERS += \ + \ + test.h +endif CRYB_TEST noinst_HEADERS = \ coverage.h \ diff --git a/include/cryb/enc.h b/include/cryb/enc.h new file mode 100644 index 0000000..e0f7bcd --- /dev/null +++ b/include/cryb/enc.h @@ -0,0 +1,36 @@ +/*- + * Copyright (c) 2015 Dag-Erling Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef CRYB_ENC_H_INCLUDED +#define CRYB_ENC_H_INCLUDED + +#include +#include + +#endif diff --git a/include/cryb/mac.h b/include/cryb/mac.h new file mode 100644 index 0000000..9afa5ab --- /dev/null +++ b/include/cryb/mac.h @@ -0,0 +1,35 @@ +/*- + * Copyright (c) 2015 Dag-Erling Smørgrav + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote + * products derived from this software without specific prior written + * permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef CRYB_MAC_H_INCLUDED +#define CRYB_MAC_H_INCLUDED + +#include + +#endif diff --git a/include/cryb/to.h b/include/cryb/to.h index ecea02b..bd15afc 100644 --- a/include/cryb/to.h +++ b/include/cryb/to.h @@ -30,4 +30,6 @@ #ifndef CRYB_TO_H_INCLUDED #define CRYB_TO_H_INCLUDED +#include + #endif diff --git a/include/cryb/version.h b/include/cryb/version.h index 27f4415..4f832bd 100644 --- a/include/cryb/version.h +++ b/include/cryb/version.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2014 Dag-Erling Smørgrav + * Copyright (c) 2014-2015 Dag-Erling Smørgrav * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,6 +30,6 @@ #ifndef CRYB_VERSION_H_INCLUDED #define CRYB_VERSION_H_INCLUDED -#define CRYB_VERSION 20140311 +#define CRYB_VERSION 20151214 #endif diff --git a/lib/Makefile.am b/lib/Makefile.am index f87aa2d..8a0530d 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,16 +1,49 @@ -SUBDIRS = \ - cipher \ - core \ - cpe \ - digest \ - enc \ - hash \ - mac \ - mpi \ - oath \ - rand \ - test +SUBDIRS = -if WITH_RSAREF +if CRYB_CIPHER +SUBDIRS += cipher +endif CRYB_CIPHER + +if CRYB_CORE +SUBDIRS += core +endif CRYB_CORE + +if CRYB_CPE +SUBDIRS += cpe +endif CRYB_CPE + +if CRYB_DIGEST +SUBDIRS += digest +endif CRYB_DIGEST + +if CRYB_ENC +SUBDIRS += enc +endif CRYB_ENC + +if CRYB_HASH +SUBDIRS += hash +endif CRYB_HASH + +if CRYB_MAC +SUBDIRS += mac +endif CRYB_MAC + +if CRYB_MPI +SUBDIRS += mpi +endif CRYB_MPI + +if CRYB_OATH +SUBDIRS += oath +endif CRYB_OATH + +if CRYB_RAND +SUBDIRS += rand +endif CRYB_RAND + +if CRYB_TEST +SUBDIRS += test +endif CRYB_TEST + +if RSAREF_TESTS SUBDIRS += rsaref -endif +endif RSAREF_TESTS diff --git a/lib/cpe/Makefile.am b/lib/cpe/Makefile.am index e833aef..e159fef 100644 --- a/lib/cpe/Makefile.am +++ b/lib/cpe/Makefile.am @@ -7,3 +7,6 @@ libcryb_cpe_la_SOURCES = \ cpe_string.c \ cpe_uri.c \ cpe_wfn.c + +libcryb_cpe_la_LIBADD = \ + $(top_builddir)/lib/core/libcryb-core.la diff --git a/lib/oath/Makefile.am b/lib/oath/Makefile.am index 81f3869..f9a656c 100644 --- a/lib/oath/Makefile.am +++ b/lib/oath/Makefile.am @@ -14,5 +14,6 @@ libcryb_oath_la_SOURCES = \ libcryb_oath_la_LIBADD = \ $(top_builddir)/lib/digest/libcryb-digest.la \ + $(top_builddir)/lib/enc/libcryb-enc.la \ $(top_builddir)/lib/mac/libcryb-mac.la \ - $(top_builddir)/lib/enc/libcryb-enc.la + $(top_builddir)/lib/core/libcryb-core.la diff --git a/t/Makefile.am b/t/Makefile.am index f27435c..624dd63 100644 --- a/t/Makefile.am +++ b/t/Makefile.am @@ -2,6 +2,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/include EXTRA_DIST = +if CRYB_TEST + # Individual libraries libcipher = $(top_builddir)/lib/cipher/libcryb-cipher.la libcore = $(top_builddir)/lib/core/libcryb-core.la @@ -15,28 +17,31 @@ librand = $(top_builddir)/lib/rand/libcryb-rand.la libt = $(top_builddir)/lib/test/libcryb-test.la # Additional headers, flags and libraries for OpenSSL -if WITH_OPENSSL +if OPENSSL_TESTS OPENSSL_INCLUDES = $(INCLUDES) OPENSSL_CFLAGS = -DWITH_OPENSSL=1 OPENSSL_LDADD = -lcrypto -endif +endif OPENSSL_TESTS # Additional headers, flags and libraries for RSAREF -if WITH_RSAREF +if RSAREF_TESTS RSAREF_INCLUDES = $(INCLUDES) -I$(top_srcdir)/lib/rsaref RSAREF_CFLAGS = -DWITH_RSAREF=1 -DPROTOTYPES=1 RSAREF_LDADD = $(top_builddir)/lib/rsaref/librsaref.la -endif +endif RSAREF_TESTS # tests TESTS = # libcryb-cipher +if CRYB_CIPHER TESTS += t_aes t_rc4 t_aes_LDADD = $(libt) $(libcipher) t_rc4_LDADD = $(libt) $(libcipher) +endif CRYB_CIPHER # libcryb-core +if CRYB_CORE TESTS += t_ctype t_endian t_memset_s t_strlcat t_strlcmp t_strlcpy TESTS += t_string t_wstring EXTRA_DIST += t__string.c @@ -48,18 +53,22 @@ t_strlcmp_LDADD = $(libt) $(libcore) t_strlcpy_LDADD = $(libt) $(libcore) t_string_LDADD = $(libt) $(libcore) t_wstring_LDADD = $(libt) $(libcore) +endif CRYB_CORE # libcryb-enc +if CRYB_ENC TESTS += t_rfc3986 t_rfc4648 t_rfc3986_LDADD = $(libt) $(libenc) t_rfc4648_LDADD = $(libt) $(libenc) +endif CRYB_ENC # libcryb-digest +if CRYB_DIGEST TESTS += t_md2 t_md4 t_md5 t_md2_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_md4_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_md5_LDADD = $(libt) $(libdigest) $(RT_LIBS) -if WITH_OPENSSL +if OPENSSL_TESTS TESTS += t_md4_openssl t_md5_openssl t_md4_openssl_SOURCES = t_md4.c t_md4_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) @@ -67,8 +76,8 @@ t_md4_openssl_LDADD = $(libt) $(OPENSSL_LDADD) $(RT_LIBS) t_md5_openssl_SOURCES = t_md5.c t_md5_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) t_md5_openssl_LDADD = $(libt) $(OPENSSL_LDADD) $(RT_LIBS) -endif -if WITH_RSAREF +endif OPENSSL_TESTS +if RSAREF_TESTS TESTS += t_md2_rsaref t_md5_rsaref t_md2_rsaref_SOURCES = t_md2.c t_md2_rsaref_CFLAGS = $(RSAREF_INCLUDES) $(RSAREF_CFLAGS) @@ -76,15 +85,14 @@ t_md2_rsaref_LDADD = $(libt) $(RSAREF_LDADD) $(RT_LIBS) t_md5_rsaref_SOURCES = t_md5.c t_md5_rsaref_CFLAGS = $(RSAREF_INCLUDES) $(RSAREF_CFLAGS) t_md5_rsaref_LDADD = $(libt) $(RSAREF_LDADD) $(RT_LIBS) -endif - +endif RSAREF_TESTS TESTS += t_sha1 t_sha224 t_sha256 t_sha384 t_sha512 t_sha1_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_sha224_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_sha256_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_sha384_LDADD = $(libt) $(libdigest) $(RT_LIBS) t_sha512_LDADD = $(libt) $(libdigest) $(RT_LIBS) -if WITH_OPENSSL +if OPENSSL_TESTS TESTS += t_sha1_openssl t_sha224_openssl t_sha256_openssl t_sha384_openssl t_sha512_openssl t_sha1_openssl_SOURCES = t_sha1.c t_sha1_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) @@ -101,24 +109,27 @@ t_sha384_openssl_LDADD = $(libt) $(OPENSSL_LDADD) $(RT_LIBS) t_sha512_openssl_SOURCES = t_sha512.c t_sha512_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) t_sha512_openssl_LDADD = $(libt) $(OPENSSL_LDADD) $(RT_LIBS) -endif +endif OPENSSL_TESTS +endif CRYB_DIGEST # libcryb-hash +if CRYB_HASH TESTS += t_adler t_fletcher t_murmur3_32 t_pearson t_adler_LDADD = $(libt) $(libhash) t_fletcher_LDADD = $(libt) $(libhash) t_murmur3_32_LDADD = $(libt) $(libhash) t_pearson_LDADD = $(libt) $(libhash) +endif CRYB_HASH # libcryb-mac +if CRYB_MAC TESTS += t_hmac_sha1 t_hmac_sha224 t_hmac_sha256 t_hmac_sha384 t_hmac_sha512 t_hmac_sha1_LDADD = $(libt) $(libmac) t_hmac_sha224_LDADD = $(libt) $(libmac) t_hmac_sha256_LDADD = $(libt) $(libmac) t_hmac_sha384_LDADD = $(libt) $(libmac) t_hmac_sha512_LDADD = $(libt) $(libmac) - -if WITH_OPENSSL +if OPENSSL_TESTS TESTS += t_hmac_sha1_openssl t_hmac_sha224_openssl t_hmac_sha256_openssl t_hmac_sha384_openssl t_hmac_sha512_openssl t_hmac_sha1_openssl_SOURCES = t_hmac_sha1.c t_hmac_sha1_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) @@ -135,10 +146,15 @@ t_hmac_sha384_openssl_LDADD = $(libt) $(OPENSSL_LDADD) t_hmac_sha512_openssl_SOURCES = t_hmac_sha512.c t_hmac_sha512_openssl_CFLAGS = $(OPENSSL_INCLUDES) $(OPENSSL_CFLAGS) t_hmac_sha512_openssl_LDADD = $(libt) $(OPENSSL_LDADD) -endif +endif OPENSSL_TESTS +endif CRYB_MAC # libcryb-mpi +if CRYB_MPI TESTS += t_mpi t_mpi_LDADD = $(libt) $(libmpi) +endif CRYB_MPI check_PROGRAMS = $(TESTS) + +endif CRYB_TEST