diff options
author | Reuben Thomas <rrt@sc3d.org> | 2009-08-10 20:11:11 +0100 |
---|---|---|
committer | Reuben Thomas <rrt@sc3d.org> | 2009-08-10 20:11:11 +0100 |
commit | c6c19a2edcc7f206a1cfdf6d91e3d584f7705b9f (patch) | |
tree | 90269678bc2a42a9492c62e07dbe08ecc10835a3 /m4/ax_func_which_getservbyname_r.m4 | |
parent | 386747c45473a6f4b7ca32a787c316d205705586 (diff) | |
download | autoconf-archive-c6c19a2edcc7f206a1cfdf6d91e3d584f7705b9f.tar.gz |
More renamings missed previously.
Diffstat (limited to 'm4/ax_func_which_getservbyname_r.m4')
-rw-r--r-- | m4/ax_func_which_getservbyname_r.m4 | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/m4/ax_func_which_getservbyname_r.m4 b/m4/ax_func_which_getservbyname_r.m4 new file mode 100644 index 0000000..a642d8c --- /dev/null +++ b/m4/ax_func_which_getservbyname_r.m4 @@ -0,0 +1,107 @@ +# =============================================================================== +# http://www.nongnu.org/autoconf-archive/ax_func_which_getservbyname_r.html +# =============================================================================== +# +# SYNOPSIS +# +# AX_FUNC_WHICH_GETSERVBYNAME_R +# +# DESCRIPTION +# +# Provides a test to determine the correct way to call getservbyname_r: +# +# - defines HAVE_FUNC_GETSERVBYNAME_R_6 if it needs 6 arguments (e.g linux) +# - defines HAVE_FUNC_GETSERVBYNAME_R_5 if it needs 5 arguments (e.g. solaris) +# - defines HAVE_FUNC_GETSERVBYNAME_R_4 if it needs 4 arguments (e.g. osf/1) +# +# An example use can be found at +# http://raf.org/autoconf/net_getservbyname.c +# +# Based on Caolan McNamara's gethostbyname_r macro. Based on David +# Arnold's autoconf suggestion in the threads faq. +# +# LICENSE +# +# Copyright (c) 2008 raf <raf@raf.org> +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see <http://www.gnu.org/licenses/>. +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +AC_DEFUN([AX_FUNC_WHICH_GETSERVBYNAME_R], +[AC_CACHE_CHECK(for getservbyname_r, ax_cv_func_which_getservbyname_r, [ +AC_CHECK_FUNC(getservbyname_r, [ + AC_TRY_COMPILE([ +# include <netdb.h> + ], [ + + char *name; + char *proto; + struct servent *se; + struct servent_data data; + (void) getservbyname_r(name, proto, se, &data); + + ],ax_cv_func_which_getservbyname_r=four, + [ + AC_TRY_COMPILE([ +# include <netdb.h> + ], [ + char *name; + char *proto; + struct servent *se, *res; + char buffer[2048]; + int buflen = 2048; + (void) getservbyname_r(name, proto, se, buffer, buflen, &res) + ],ax_cv_func_which_getservbyname_r=six, + + [ + AC_TRY_COMPILE([ +# include <netdb.h> + ], [ + char *name; + char *proto; + struct servent *se; + char buffer[2048]; + int buflen = 2048; + (void) getservbyname_r(name, proto, se, buffer, buflen) + ],ax_cv_func_which_getservbyname_r=five,ax_cv_func_which_getservbyname_r=no) + + ] + + ) + ] + )] + ,ax_cv_func_which_getservbyname_r=no)]) + +if test $ax_cv_func_which_getservbyname_r = six; then + AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_6) +elif test $ax_cv_func_which_getservbyname_r = five; then + AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_5) +elif test $ax_cv_func_which_getservbyname_r = four; then + AC_DEFINE(HAVE_FUNC_GETSERVBYNAME_R_4) + +fi + +]) |