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'.
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.
Specifically when cross-compiling, one can be willing to force these
variable values using the environment of a config.cache file. This
commit makes this possible.
The affected variables are:
* libzmq_cv_sock_cloexec
* libzmq_cv_so_keepalive
* libzmq_cv_tcp_keepcnt
* libzmq_cv_tcp_keepidle
* libzmq_cv_tcp_keepintvl
* libzmq_cv_tcp_keepalive
Signed-off-by: Lionel Orry <lionel.orry@gmail.com>
The decision about the poller mechanism to use (select, poll, ...)
was done twice: once by the build system and once by the code in
poller.hpp. As the build-system can actually detect the mechanisms
available, prefer that result to the hard coded defaults in
poller.hpp.
At the same time, remove the duplicate detection of select() vs.
poll()-variant from proxy.cpp, signaler.cpp and zmq.cpp.
This patch has not been tested on many build platforms: especially
the cmake build needs testing / patching. For the other builds,
hard code the result as these these are all Windows platforms.
- Added a macro for checking clang compiler
- Moved basic compiler checks to a macro
- Added a macro for checking if compiler supports a flag
- Added --enable-debug flag
- Added a macro for running normal autoconf check with compiler flags
- Added a macro for checking for verbose flag for different compilers (-Wall)
- Added a macro for turning on strict standards compliance
- Added a macro for turning warnings to errors
- Added a macro for checking if compiler supports given pragma
- Most of the flags now go through checks if the compilers supports them
rather than enumerating different compilers
- Added DSO symbol visibility for sun compiler
- Enabled verbose mode for sun compiler
- Fixed build for ICC 12.x by adding -wd279 to size_t checks
- Removed pkg-config checks as those don't seem to be used anywhere
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
The patch tests that the C and C++ compilers actually exist
and work. autoconf seems to default to 'g++' when C++ compiler is not
found, which causes the following error (when the compiler isn't
there):
checking for uuid_generate in -luuid... no
configure: error: cannot link with -luuid, install uuid-dev.
The config.log contains the real error message "g++ command not found"
but the error message shown to the user is misleading.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
I ran autoupdate on the configure.in, which generated most of the
patch attached. There is also a small manual fix in which removes the
warning "Remember to add LT_INIT to configure.in" which I assume is
because AC_PROG_LIBTOOL was called inside a macro.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
Allows building without documentation even if asciidoc and xmlto are
installed. This eases up working with the build system because doc
generation take quite a while on repeated builds.
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>
After long discussions in IRC we came to conclusion that there is no
elegant way to handle static builds with MinGW32. This patch sets
AC_DISABLE_STATIC by default on MinGW32 and Cygwin
Signed-off-by: Mikko Koppanen <mkoppanen@php.net>