1. 11 Feb, 2016 4 commits
    • Pieter Hintjens's avatar
      Problem: some configure options are confusing · e65367ea
      Pieter Hintjens authored
      It's especially annoying to see this:
      
        --enable-perf           Build performance measurement tools [default=yes].
        --disable-eventfd       disable eventfd [default=no]
        --enable-curve-keygen   Build curve key-generation tool [default=yes].
      
      Solution: all options should explain the non-default case. Also
      the language should be enable/disable, with/without, rather than
      yes/no. E.g. '--without-docs'.
      e65367ea
    • Pieter Hintjens's avatar
      Problem: autotools platform.hpp is not compatible with CMake · 9f8ced3f
      Pieter Hintjens authored
      Specifically, the poller detection code does not set macros in
      platform.hpp. The configure script passed them as -D on the command
      line.
      
      Solution: rewrite the poller detection code.
      9f8ced3f
    • Pieter Hintjens's avatar
      Problem: cmake fails with #error None of the ZMQ_USE_* macros defined · ddbbe3b4
      Pieter Hintjens authored
      This happens if you first configure with autotools, and then run
      cmake. The problem is that the compiler finds the old src/platform.hpp
      before looking for the one generated by CMake. Further, there are a
      set of macros that configure passes via the command line, yet CMake
      passes via platform.hpp. (HAVE_xxx for pollers, at least.) This means
      you can't do a CMake build using the autotools platform.hpp.
      
      Solution: remove any src/platform.hpp when running cmake. This is a
      workaround. I'll fix the inconsistent macros separately.
      ddbbe3b4
    • Pieter Hintjens's avatar
      Problem: use of libsodium vs. tweetnacl is confused · b49a6041
      Pieter Hintjens authored
      It's unclear which we need and in the source code, conditional code
      treats tweetnacl as a subclass of libsodium, which is inaccurate.
      
      Solution: redesign the configure/cmake API for this:
      
      * tweetnacl is present by default and cannot be enabled
      * libsodium can be enabled using --with-libsodium, which replaces
        the built-in tweetnacl
      * CURVE encryption can be disabled entirely using --enable-curve=no
      
      The macros we define in platform.hpp are:
      
          ZMQ_HAVE_CURVE    1        //  When CURVE is enabled
          HAVE_LIBSODIUM    1        //  When we are using libsodium
          HAVE_TWEETNACL    1        //  When we're using tweetnacl (default)
      
      As of this patch, the default build of libzmq always has CURVE
      security, and always uses tweetnacl.
      b49a6041
  2. 09 Feb, 2016 8 commits
  3. 08 Feb, 2016 10 commits
  4. 07 Feb, 2016 9 commits
  5. 06 Feb, 2016 9 commits