From 6f022cce929e55df1e71ca89351e209f9cdcfa1b Mon Sep 17 00:00:00 2001 From: Min RK Date: Mon, 8 Feb 2016 11:40:50 +0100 Subject: [PATCH 1/2] add --with-tweetnacl to configure allows building with tweetnacl without cmake --- Makefile.am | 9 +++++++++ configure.ac | 11 +++++++++++ 2 files changed, 20 insertions(+) diff --git a/Makefile.am b/Makefile.am index 77e6ec5d..2cfa015f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -237,6 +237,15 @@ libzmq_la_CPPFLAGS += ${sodium_CFLAGS} libzmq_la_LIBADD += ${sodium_LIBS} endif +if USE_TWEETNACL +libzmq_la_SOURCES += \ + tweetnacl/src/tweetnacl.c \ + tweetnacl/contrib/randombytes/devurandom.c +libzmq_la_CXXFLAGS += \ + -I$(top_builddir)/tweetnacl/contrib/randombytes \ + -I$(top_builddir)/tweetnacl/src +endif + if HAVE_PGM libzmq_la_CPPFLAGS += ${pgm_CFLAGS} libzmq_la_LIBADD += ${pgm_LIBS} diff --git a/configure.ac b/configure.ac index c7c83d85..1b20a136 100644 --- a/configure.ac +++ b/configure.ac @@ -397,6 +397,12 @@ AC_ARG_WITH([libsodium], [AS_HELP_STRING([--with-libsodium], [require_libsodium_ext=$withval], [require_libsodium_ext=yes]) +AC_ARG_WITH([tweetnacl], [AS_HELP_STRING([--with-tweetnacl], + [build libzmq with bundled tweetnacl crypto library [default=no]])], + [require_libsodium_ext=no + with_tweetnacl=yes], + [with_tweetnacl=no]) + # conditionally require libsodium package if test "x$require_libsodium_ext" != "xno"; then PKG_CHECK_MODULES([sodium], [libsodium], [have_sodium_library="yes"]) @@ -404,9 +410,14 @@ fi if test "x$have_sodium_library" != "xno"; then AC_DEFINE(HAVE_LIBSODIUM, 1, [The libsodium library is to be used.]) +elif test "x$with_tweetnacl" != "xno"; then + echo "using tweetnacl" + AC_DEFINE(HAVE_LIBSODIUM, 1, [Sodium is provided by tweetnacl.]) + AC_DEFINE(HAVE_TWEETNACL, 1, [Using tweetnacl.]) fi AM_CONDITIONAL(HAVE_SODIUM, test "x$have_sodium_library" != "xno") +AM_CONDITIONAL(USE_TWEETNACL, test "x$with_tweetnacl" != "xno") # build using pgm have_pgm_library="no" From 3ae84e6b00108ad6aed21faf22a08ae8faded56a Mon Sep 17 00:00:00 2001 From: Min RK Date: Mon, 8 Feb 2016 11:58:30 +0100 Subject: [PATCH 2/2] fallback on tweetnacl if libsodium is not found and not explicitly requested --- configure.ac | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 1b20a136..492002e6 100644 --- a/configure.ac +++ b/configure.ac @@ -393,25 +393,39 @@ fi have_sodium_library="no" AC_ARG_WITH([libsodium], [AS_HELP_STRING([--with-libsodium], - [require libzmq build with libsodium. Requires pkg-config [default=no]])], + [require libzmq build with libsodium crypto library. Requires pkg-config [default=check]])], [require_libsodium_ext=$withval], - [require_libsodium_ext=yes]) + [require_libsodium_ext=check]) AC_ARG_WITH([tweetnacl], [AS_HELP_STRING([--with-tweetnacl], [build libzmq with bundled tweetnacl crypto library [default=no]])], [require_libsodium_ext=no - with_tweetnacl=yes], - [with_tweetnacl=no]) + with_tweetnacl=yes + AC_MSG_CHECKING(for sodium) + AC_MSG_RESULT(tweetnacl)], + [with_tweetnacl=check]) # conditionally require libsodium package if test "x$require_libsodium_ext" != "xno"; then - PKG_CHECK_MODULES([sodium], [libsodium], [have_sodium_library="yes"]) + PKG_CHECK_MODULES([sodium], [libsodium], + [ + have_sodium_library=yes + with_tweetnacl=no + ], + [ + if test "x$require_libsodium_ext" == "xyes"; then + AC_MSG_ERROR(libsodium has been requested but not found) + else + AC_MSG_RESULT([ libsodium not found, using tweetnacl]) + have_sodium_library=no + with_tweetnacl=yes + fi + ]) fi if test "x$have_sodium_library" != "xno"; then AC_DEFINE(HAVE_LIBSODIUM, 1, [The libsodium library is to be used.]) elif test "x$with_tweetnacl" != "xno"; then - echo "using tweetnacl" AC_DEFINE(HAVE_LIBSODIUM, 1, [Sodium is provided by tweetnacl.]) AC_DEFINE(HAVE_TWEETNACL, 1, [Using tweetnacl.]) fi