build: use getenv() replacement function for systems which lack it
This commit is contained in:
parent
3abad87d88
commit
822fd0f877
|
@ -11,6 +11,7 @@ CSOURCES = ares__close_sockets.c \
|
|||
ares_fds.c \
|
||||
ares_free_hostent.c \
|
||||
ares_free_string.c \
|
||||
ares_getenv.c \
|
||||
ares_gethostbyaddr.c \
|
||||
ares_gethostbyname.c \
|
||||
ares_getnameinfo.c \
|
||||
|
@ -47,6 +48,7 @@ HHEADERS = ares.h \
|
|||
ares_build.h \
|
||||
ares_data.h \
|
||||
ares_dns.h \
|
||||
ares_getenv.h \
|
||||
ares_ipv6.h \
|
||||
ares_library_init.h \
|
||||
ares_llist.h \
|
||||
|
|
|
@ -357,6 +357,7 @@ endif
|
|||
@echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_GETENV 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_GETHOSTBYADDR 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_GETHOSTBYNAME 1$(DL) >> $@
|
||||
@echo $(DL)#define HAVE_GETHOSTNAME 1$(DL) >> $@
|
||||
|
|
|
@ -0,0 +1,30 @@
|
|||
|
||||
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
* fee is hereby granted, provided that the above copyright
|
||||
* notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* M.I.T. makes no representations about the suitability of
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
#include "ares_setup.h"
|
||||
#include "ares_getenv.h"
|
||||
|
||||
#ifndef HAVE_GETENV
|
||||
|
||||
char *ares_getenv(const char *name)
|
||||
{
|
||||
#ifdef _WIN32_WCE
|
||||
return NULL;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,26 @@
|
|||
#ifndef HEADER_CARES_GETENV_H
|
||||
#define HEADER_CARES_GETENV_H
|
||||
|
||||
|
||||
/* Copyright 1998 by the Massachusetts Institute of Technology.
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this
|
||||
* software and its documentation for any purpose and without
|
||||
* fee is hereby granted, provided that the above copyright
|
||||
* notice appear in all copies and that both that copyright
|
||||
* notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of M.I.T. not be used in
|
||||
* advertising or publicity pertaining to distribution of the
|
||||
* software without specific, written prior permission.
|
||||
* M.I.T. makes no representations about the suitability of
|
||||
* this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*/
|
||||
|
||||
#include "ares_setup.h"
|
||||
|
||||
#ifndef HAVE_GETENV
|
||||
extern char *ares_getenv(const char *name);
|
||||
#endif
|
||||
|
||||
#endif /* HEADER_CARES_GETENV_H */
|
|
@ -89,6 +89,11 @@
|
|||
#include "ares_ipv6.h"
|
||||
#include "ares_llist.h"
|
||||
|
||||
#ifndef HAVE_GETENV
|
||||
# include "ares_getenv.h"
|
||||
# define getenv(ptr) ares_getenv(ptr)
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_STRDUP
|
||||
# include "ares_strdup.h"
|
||||
# define strdup(ptr) ares_strdup(ptr)
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
#define PACKAGE "c-ares"
|
||||
|
||||
#define HAVE_ERRNO_H 1
|
||||
#define HAVE_GETENV 1
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
#define HAVE_IOCTLSOCKET 1
|
||||
#define HAVE_IOCTLSOCKET_FIONBIO 1
|
||||
|
|
|
@ -93,6 +93,9 @@
|
|||
/* Define if you have the closesocket function. */
|
||||
#define HAVE_CLOSESOCKET 1
|
||||
|
||||
/* Define if you have the getenv function. */
|
||||
#define HAVE_GETENV 1
|
||||
|
||||
/* Define if you have the gethostname function. */
|
||||
#define HAVE_GETHOSTNAME 1
|
||||
|
||||
|
|
|
@ -524,6 +524,7 @@ CARES_CHECK_FUNC_CONNECT
|
|||
CARES_CHECK_FUNC_FCNTL
|
||||
CARES_CHECK_FUNC_FREEADDRINFO
|
||||
CARES_CHECK_FUNC_GETADDRINFO
|
||||
CARES_CHECK_FUNC_GETENV
|
||||
CARES_CHECK_FUNC_GETHOSTBYADDR
|
||||
CARES_CHECK_FUNC_GETHOSTBYNAME
|
||||
CARES_CHECK_FUNC_GETHOSTNAME
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#***************************************************************************
|
||||
#
|
||||
# Copyright (C) 2008 - 2010 by Daniel Stenberg et al
|
||||
# Copyright (C) 2008 - 2011 by Daniel Stenberg et al
|
||||
#
|
||||
# Permission to use, copy, modify, and distribute this software and its
|
||||
# documentation for any purpose and without fee is hereby granted, provided
|
||||
|
@ -15,7 +15,7 @@
|
|||
#***************************************************************************
|
||||
|
||||
# File version for 'aclocal' use. Keep it a single number.
|
||||
# serial 40
|
||||
# serial 41
|
||||
|
||||
|
||||
dnl CARES_INCLUDES_ARPA_INET
|
||||
|
@ -1084,6 +1084,91 @@ AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [
|
|||
])
|
||||
|
||||
|
||||
dnl CARES_CHECK_FUNC_GETENV
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if getenv is available, prototyped, and
|
||||
dnl can be compiled. If all of these are true, and
|
||||
dnl usage has not been previously disallowed with
|
||||
dnl shell variable cares_disallow_getenv, then
|
||||
dnl HAVE_GETENV will be defined.
|
||||
|
||||
AC_DEFUN([CARES_CHECK_FUNC_GETENV], [
|
||||
AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl
|
||||
#
|
||||
tst_links_getenv="unknown"
|
||||
tst_proto_getenv="unknown"
|
||||
tst_compi_getenv="unknown"
|
||||
tst_allow_getenv="unknown"
|
||||
#
|
||||
AC_MSG_CHECKING([if getenv can be linked])
|
||||
AC_LINK_IFELSE([
|
||||
AC_LANG_FUNC_LINK_TRY([getenv])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
tst_links_getenv="yes"
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
tst_links_getenv="no"
|
||||
])
|
||||
#
|
||||
if test "$tst_links_getenv" = "yes"; then
|
||||
AC_MSG_CHECKING([if getenv is prototyped])
|
||||
AC_EGREP_CPP([getenv],[
|
||||
$cares_includes_stdlib
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
tst_proto_getenv="yes"
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
tst_proto_getenv="no"
|
||||
])
|
||||
fi
|
||||
#
|
||||
if test "$tst_proto_getenv" = "yes"; then
|
||||
AC_MSG_CHECKING([if getenv is compilable])
|
||||
AC_COMPILE_IFELSE([
|
||||
AC_LANG_PROGRAM([[
|
||||
$cares_includes_stdlib
|
||||
]],[[
|
||||
if(0 != getenv(0))
|
||||
return 1;
|
||||
]])
|
||||
],[
|
||||
AC_MSG_RESULT([yes])
|
||||
tst_compi_getenv="yes"
|
||||
],[
|
||||
AC_MSG_RESULT([no])
|
||||
tst_compi_getenv="no"
|
||||
])
|
||||
fi
|
||||
#
|
||||
if test "$tst_compi_getenv" = "yes"; then
|
||||
AC_MSG_CHECKING([if getenv usage allowed])
|
||||
if test "x$cares_disallow_getenv" != "xyes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
tst_allow_getenv="yes"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
tst_allow_getenv="no"
|
||||
fi
|
||||
fi
|
||||
#
|
||||
AC_MSG_CHECKING([if getenv might be used])
|
||||
if test "$tst_links_getenv" = "yes" &&
|
||||
test "$tst_proto_getenv" = "yes" &&
|
||||
test "$tst_compi_getenv" = "yes" &&
|
||||
test "$tst_allow_getenv" = "yes"; then
|
||||
AC_MSG_RESULT([yes])
|
||||
AC_DEFINE_UNQUOTED(HAVE_GETENV, 1,
|
||||
[Define to 1 if you have the getenv function.])
|
||||
ac_cv_func_getenv="yes"
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
ac_cv_func_getenv="no"
|
||||
fi
|
||||
])
|
||||
|
||||
|
||||
dnl CARES_CHECK_FUNC_GETHOSTBYADDR
|
||||
dnl -------------------------------------------------
|
||||
dnl Verify if gethostbyaddr is available, prototyped,
|
||||
|
|
|
@ -198,6 +198,10 @@ SOURCE=..\..\ares_free_string.c
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ares_getenv.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ares_gethostbyaddr.c
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
@ -342,6 +346,10 @@ SOURCE=..\..\ares_dns.h
|
|||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ares_getenv.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=..\..\ares_ipv6.h
|
||||
# End Source File
|
||||
# Begin Source File
|
||||
|
|
Loading…
Reference in New Issue