diff options
author | Yang Tse <yangsita@gmail.com> | 2010-01-26 15:07:40 +0000 |
---|---|---|
committer | Yang Tse <yangsita@gmail.com> | 2010-01-26 15:07:40 +0000 |
commit | 22ed0f50594864942c767043de1ac56bb0592155 (patch) | |
tree | ffc76efe66b38aea6ce50b7797c86b38f5956e1f /m4 | |
parent | 9bc897f380423f40bc9e5f22c12c670f5a28a369 (diff) |
minor fixes for --enable-ares configure option
Diffstat (limited to 'm4')
-rw-r--r-- | m4/curl-confopts.m4 | 179 |
1 files changed, 174 insertions, 5 deletions
diff --git a/m4/curl-confopts.m4 b/m4/curl-confopts.m4 index 3ae73785f..ec58a47f8 100644 --- a/m4/curl-confopts.m4 +++ b/m4/curl-confopts.m4 @@ -5,7 +5,7 @@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # -# Copyright (C) 1998 - 2009, Daniel Stenberg, <daniel@haxx.se>, et al. +# Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@ -22,7 +22,43 @@ #*************************************************************************** # File version for 'aclocal' use. Keep it a single number. -# serial 6 +# serial 7 + + +dnl CURL_CHECK_OPTION_ARES +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-ares or --disable-ares, and +dnl set shell variable want_ares as appropriate. + +AC_DEFUN([CURL_CHECK_OPTION_ARES], [ +dnl AC_BEFORE([$0],[CURL_CHECK_OPTION_THREADS])dnl + AC_BEFORE([$0],[CURL_CHECK_LIB_ARES])dnl + AC_MSG_CHECKING([whether to enable c-ares for DNS lookups]) + OPT_ARES="default" + AC_ARG_ENABLE(ares, +AC_HELP_STRING([--enable-ares@<:@=PATH@:>@],[Enable c-ares for DNS lookups]) +AC_HELP_STRING([--disable-ares],[Disable c-ares for DNS lookups]), + OPT_ARES=$enableval) + case "$OPT_ARES" in + no) + dnl --disable-ares option used + want_ares="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure option not specified + want_ares="assume_yes" + AC_MSG_RESULT([(assumed) yes]) + ;; + *) + dnl --enable-ares option used + want_ares="yes" + want_ares_path="$enableval" + AC_MSG_RESULT([yes]) + ;; + esac +]) dnl CURL_CHECK_OPTION_CURLDEBUG @@ -53,7 +89,7 @@ AC_HELP_STRING([--disable-curldebug],[Disable curl debug memory tracking]), dnl possible, and for debug-disabled builds this will be handled dnl as a request to disable curldebug. if test "$want_debug" = "yes"; then - AC_MSG_RESULT([not specified (assuming yes)]) + AC_MSG_RESULT([(assumed) yes]) else AC_MSG_RESULT([no]) fi @@ -180,10 +216,10 @@ AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]), dnl will always take precedence over any initial assumption. if test "$want_debug" = "yes"; then want_optimize="assume_no" - AC_MSG_RESULT([not specified (assuming no)]) + AC_MSG_RESULT([(assumed) no]) else want_optimize="assume_yes" - AC_MSG_RESULT([not specified (assuming yes)]) + AC_MSG_RESULT([(assumed) yes]) fi ;; *) @@ -198,6 +234,54 @@ AC_HELP_STRING([--disable-optimize],[Disable compiler optimizations]), ]) +dnl CURL_CHECK_OPTION_THREADS +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-threads or --disable-threads, and +dnl set shell variable want_threads as appropriate. + +dnl AC_DEFUN([CURL_CHECK_OPTION_THREADS], [ +dnl AC_BEFORE([$0],[CURL_CHECK_LIB_THREADS])dnl +dnl AC_MSG_CHECKING([whether to enable threads for DNS lookups]) +dnl OPT_THREADS="default" +dnl AC_ARG_ENABLE(threads, +dnl AC_HELP_STRING([--enable-threads@<:@=PATH@:>@],[Enable threads for DNS lookups]) +dnl AC_HELP_STRING([--disable-threads],[Disable threads for DNS lookups]), +dnl OPT_THREADS=$enableval) +dnl case "$OPT_THREADS" in +dnl no) +dnl dnl --disable-threads option used +dnl want_threads="no" +dnl AC_MSG_RESULT([no]) +dnl ;; +dnl default) +dnl dnl configure option not specified +dnl want_threads="no" +dnl AC_MSG_RESULT([(assumed) no]) +dnl ;; +dnl *) +dnl dnl --enable-threads option used +dnl want_threads="yes" +dnl want_threads_path="$enableval" +dnl AC_MSG_RESULT([yes]) +dnl ;; +dnl esac +dnl # +dnl if test "$want_ares" = "assume_yes"; then +dnl if test "$want_threads" = "yes"; then +dnl AC_MSG_CHECKING([whether to ignore c-ares enabling assumed setting]) +dnl AC_MSG_RESULT([yes]) +dnl want_ares="no" +dnl else +dnl want_ares="yes" +dnl fi +dnl fi +dnl if test "$want_threads" = "yes" && test "$want_ares" = "yes"; then +dnl AC_MSG_ERROR([options --enable-ares and --enable-threads are mutually exclusive, at most one may be enabled.]) +dnl fi +dnl ]) + + dnl CURL_CHECK_OPTION_WARNINGS dnl ------------------------------------------------- dnl Verify if configure has been invoked with option @@ -270,3 +354,88 @@ AC_DEFUN([CURL_CHECK_NONBLOCKING_SOCKET], [ fi ]) + +dnl CURL_CHECK_LIB_ARES +dnl ------------------------------------------------- +dnl When c-ares library support has been requested, +dnl performs necessary checks and adjustsments needed +dnl to enable support of this library. + +AC_DEFUN([CURL_CHECK_LIB_ARES], [ + # + if test "$want_ares" = "yes"; then + dnl c-ares library support has been requested + clean_CPPFLAGS="$CPPFLAGS" + clean_CFLAGS="$CFLAGS" + clean_LIBS="$LIBS" + embedded_ares="unknown" + configure_runpath=`pwd` + embedded_ares_builddir="$configure_runpath/ares" + if test -n "$want_ares_path" && test "$want_ares_path" != "yes"; then + dnl c-ares library path has been specified + ares_CPPFLAGS="-I$want_ares_path/include" + ares_LDFLAGS="-L$want_ares_path/lib" + ares_LIBS="-lcares" + else + dnl c-ares library path has not been given + if test -d "$srcdir/ares"; then + dnl c-ares sources embedded in curl tree + embedded_ares="yes" + AC_CONFIG_SUBDIRS(ares) + dnl c-ares has installable configured header files, path + dnl inclusion fully done in makefiles for in-tree builds. + ares_CPPFLAGS="" + ares_LDFLAGS="-L$embedded_ares_builddir" + ares_LIBS="-lcares" + else + dnl c-ares path not specified, use defaults + ares_CPPFLAGS="" + ares_LDFLAGS="" + ares_LIBS="-lcares" + fi + fi + # + CPPFLAGS="$ares_CPPFLAGS $clean_CPPFLAGS" + LDFLAGS="$ares_LDFLAGS $clean_LDFLAGS" + LIBS="$ares_LIBS $clean_LIBS" + # + if test "$embedded_ares" != "yes"; then + dnl check if c-ares new enough when not using an embedded + dnl source tree one which normally has not been built yet. + AC_MSG_CHECKING([that c-ares is good and recent enough]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#include <ares.h> + /* set of dummy functions in case c-ares was built with debug */ + void curl_dofree() { } + void curl_sclose() { } + void curl_domalloc() { } + void curl_docalloc() { } + void curl_socket() { } + ]],[[ + ares_channel channel; + ares_cancel(channel); /* added in 1.2.0 */ + ares_process_fd(channel, 0, 0); /* added in 1.4.0 */ + ]]) + ],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([c-ares library defective or too old]) + dnl restore initial settings + CPPFLAGS="$clean_CPPFLAGS" + CFLAGS="$clean_CFLAGS" + LIBS="$clean_LIBS" + # prevent usage + want_ares="no" + ]) + fi + if test "$want_ares" = "yes"; then + dnl finally c-ares will be used + AC_DEFINE(USE_ARES, 1, [Define to enable c-ares support]) + AC_SUBST([USE_ARES], [1]) + curl_ares_msg="enabled" + fi + fi +]) + |