build: use getenv() replacement function for systems which lack it

pull/4/head
Yang Tse 14 years ago
parent 3abad87d88
commit 822fd0f877
  1. 2
      Makefile.inc
  2. 1
      Makefile.netware
  3. 30
      ares_getenv.c
  4. 26
      ares_getenv.h
  5. 5
      ares_private.h
  6. 1
      config-dos.h
  7. 3
      config-win32.h
  8. 1
      configure.ac
  9. 89
      m4/cares-functions.m4
  10. 8
      vc/cares/vc6cares.dsp

@ -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…
Cancel
Save