mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 23:58:49 -05:00
configure script now checks availability of the alarm() function
This commit is contained in:
parent
459e67b2a7
commit
4e4f6c1ec8
3
CHANGES
3
CHANGES
@ -6,6 +6,9 @@
|
|||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
Yang Tse (19 Sep 2008)
|
||||||
|
- configure script now checks availability of the alarm() function.
|
||||||
|
|
||||||
Daniel Fandrich (18 Sep 2008)
|
Daniel Fandrich (18 Sep 2008)
|
||||||
- Don't bother to install a SIGALRM handler unless alarm() is available.
|
- Don't bother to install a SIGALRM handler unless alarm() is available.
|
||||||
Also, leave the existing SIGALRM handler alone if the timeout is too small
|
Also, leave the existing SIGALRM handler alone if the timeout is too small
|
||||||
|
@ -2045,6 +2045,7 @@ CURL_CHECK_FUNC_RECVFROM
|
|||||||
CURL_CHECK_FUNC_SEND
|
CURL_CHECK_FUNC_SEND
|
||||||
CURL_CHECK_MSG_NOSIGNAL
|
CURL_CHECK_MSG_NOSIGNAL
|
||||||
|
|
||||||
|
CURL_CHECK_FUNC_ALARM
|
||||||
CURL_CHECK_FUNC_FDOPEN
|
CURL_CHECK_FUNC_FDOPEN
|
||||||
CURL_CHECK_FUNC_FTRUNCATE
|
CURL_CHECK_FUNC_FTRUNCATE
|
||||||
CURL_CHECK_FUNC_GETHOSTBYADDR_R
|
CURL_CHECK_FUNC_GETHOSTBYADDR_R
|
||||||
|
105
lib/setup.h
105
lib/setup.h
@ -338,76 +338,66 @@
|
|||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
||||||
#if !defined(__CYGWIN__)
|
# if !defined(__CYGWIN__)
|
||||||
#define sclose(x) closesocket(x)
|
# define sclose(x) closesocket(x)
|
||||||
|
# else
|
||||||
|
# define sclose(x) close(x)
|
||||||
|
# endif
|
||||||
|
|
||||||
#undef HAVE_ALARM
|
# define DIR_CHAR "\\"
|
||||||
#else
|
# define DOT_CHAR "_"
|
||||||
/* gcc-for-win is still good :) */
|
|
||||||
#define sclose(x) close(x)
|
|
||||||
#define HAVE_ALARM
|
|
||||||
#endif /* !GNU or mingw */
|
|
||||||
|
|
||||||
#define DIR_CHAR "\\"
|
|
||||||
#define DOT_CHAR "_"
|
|
||||||
|
|
||||||
#else /* WIN32 */
|
#else /* WIN32 */
|
||||||
|
|
||||||
#ifdef MSDOS /* Watt-32 */
|
# ifdef MSDOS /* Watt-32 */
|
||||||
#include <sys/ioctl.h>
|
|
||||||
#define sclose(x) close_s(x)
|
|
||||||
#define select(n,r,w,x,t) select_s(n,r,w,x,t)
|
|
||||||
#define ioctl(x,y,z) ioctlsocket(x,y,(char *)(z))
|
|
||||||
#define IOCTL_3_ARGS
|
|
||||||
#include <tcp.h>
|
|
||||||
#ifdef word
|
|
||||||
#undef word
|
|
||||||
#endif
|
|
||||||
#ifdef byte
|
|
||||||
#undef byte
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#else /* MSDOS */
|
# include <sys/ioctl.h>
|
||||||
|
# define sclose(x) close_s(x)
|
||||||
|
# define select(n,r,w,x,t) select_s(n,r,w,x,t)
|
||||||
|
# define ioctl(x,y,z) ioctlsocket(x,y,(char *)(z))
|
||||||
|
# define IOCTL_3_ARGS
|
||||||
|
# include <tcp.h>
|
||||||
|
# ifdef word
|
||||||
|
# undef word
|
||||||
|
# endif
|
||||||
|
# ifdef byte
|
||||||
|
# undef byte
|
||||||
|
# endif
|
||||||
|
|
||||||
#ifdef __BEOS__
|
# else /* MSDOS */
|
||||||
#define sclose(x) closesocket(x)
|
|
||||||
#else /* __BEOS__ */
|
|
||||||
#define sclose(x) close(x)
|
|
||||||
#endif /* __BEOS__ */
|
|
||||||
|
|
||||||
#define HAVE_ALARM
|
# ifdef __BEOS__
|
||||||
|
# define sclose(x) closesocket(x)
|
||||||
|
# else /* __BEOS__ */
|
||||||
|
# define sclose(x) close(x)
|
||||||
|
# endif /* __BEOS__ */
|
||||||
|
|
||||||
#endif /* MSDOS */
|
# endif /* MSDOS */
|
||||||
|
|
||||||
#ifdef _AMIGASF
|
# ifdef _AMIGASF
|
||||||
#undef HAVE_ALARM
|
# undef sclose
|
||||||
#undef sclose
|
# define sclose(x) CloseSocket(x)
|
||||||
#define sclose(x) CloseSocket(x)
|
# endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __minix
|
# ifdef __minix
|
||||||
/* Minix 3 versions up to at least 3.1.3 are missing these prototypes */
|
/* Minix 3 versions up to at least 3.1.3 are missing these prototypes */
|
||||||
extern char * strtok_r(char *s, const char *delim, char **last);
|
extern char * strtok_r(char *s, const char *delim, char **last);
|
||||||
extern struct tm * gmtime_r(const time_t * const timep, struct tm *tmp);
|
extern struct tm * gmtime_r(const time_t * const timep, struct tm *tmp);
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#ifdef __SYMBIAN32__
|
# define DIR_CHAR "/"
|
||||||
#undef HAVE_ALARM
|
# ifndef DOT_CHAR
|
||||||
#endif
|
# define DOT_CHAR "."
|
||||||
|
# endif
|
||||||
|
|
||||||
#define DIR_CHAR "/"
|
# ifdef MSDOS
|
||||||
#ifndef DOT_CHAR
|
# undef DOT_CHAR
|
||||||
#define DOT_CHAR "."
|
# define DOT_CHAR "_"
|
||||||
#endif
|
# endif
|
||||||
|
|
||||||
#ifdef MSDOS
|
# ifndef fileno /* sunos 4 have this as a macro! */
|
||||||
#undef DOT_CHAR
|
int fileno( FILE *stream);
|
||||||
#define DOT_CHAR "_"
|
# endif
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef fileno /* sunos 4 have this as a macro! */
|
|
||||||
int fileno( FILE *stream);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
@ -450,7 +440,6 @@ int netware_init(void);
|
|||||||
#include <sys/bsdskt.h>
|
#include <sys/bsdskt.h>
|
||||||
#include <sys/timeval.h>
|
#include <sys/timeval.h>
|
||||||
#endif
|
#endif
|
||||||
#undef HAVE_ALARM
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_LIBIDN) && defined(HAVE_TLD_H)
|
#if defined(HAVE_LIBIDN) && defined(HAVE_TLD_H)
|
||||||
|
@ -204,6 +204,91 @@ curl_includes_unistd="\
|
|||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
|
dnl CURL_CHECK_FUNC_ALARM
|
||||||
|
dnl -------------------------------------------------
|
||||||
|
dnl Verify if alarm 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 curl_disallow_alarm, then
|
||||||
|
dnl HAVE_ALARM will be defined.
|
||||||
|
|
||||||
|
AC_DEFUN([CURL_CHECK_FUNC_ALARM], [
|
||||||
|
AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl
|
||||||
|
#
|
||||||
|
tst_links_alarm="unknown"
|
||||||
|
tst_proto_alarm="unknown"
|
||||||
|
tst_compi_alarm="unknown"
|
||||||
|
tst_allow_alarm="unknown"
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING([if alarm can be linked])
|
||||||
|
AC_LINK_IFELSE([
|
||||||
|
AC_LANG_FUNC_LINK_TRY([alarm])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_links_alarm="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_links_alarm="no"
|
||||||
|
])
|
||||||
|
#
|
||||||
|
if test "$tst_links_alarm" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if alarm is prototyped])
|
||||||
|
AC_EGREP_CPP([alarm],[
|
||||||
|
$curl_includes_unistd
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_proto_alarm="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_proto_alarm="no"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
if test "$tst_proto_alarm" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if alarm is compilable])
|
||||||
|
AC_COMPILE_IFELSE([
|
||||||
|
AC_LANG_PROGRAM([[
|
||||||
|
$curl_includes_unistd
|
||||||
|
]],[[
|
||||||
|
if(0 != alarm(0))
|
||||||
|
return 1;
|
||||||
|
]])
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_compi_alarm="yes"
|
||||||
|
],[
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_compi_alarm="no"
|
||||||
|
])
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
if test "$tst_compi_alarm" = "yes"; then
|
||||||
|
AC_MSG_CHECKING([if alarm usage allowed])
|
||||||
|
if test "x$curl_disallow_alarm" != "xyes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
tst_allow_alarm="yes"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
tst_allow_alarm="no"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
#
|
||||||
|
AC_MSG_CHECKING([if alarm might be used])
|
||||||
|
if test "$tst_links_alarm" = "yes" &&
|
||||||
|
test "$tst_proto_alarm" = "yes" &&
|
||||||
|
test "$tst_compi_alarm" = "yes" &&
|
||||||
|
test "$tst_allow_alarm" = "yes"; then
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
AC_DEFINE_UNQUOTED(HAVE_ALARM, 1,
|
||||||
|
[Define to 1 if you have the alarm function.])
|
||||||
|
ac_cv_func_alarm="yes"
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
ac_cv_func_alarm="no"
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
dnl CURL_CHECK_FUNC_FDOPEN
|
dnl CURL_CHECK_FUNC_FDOPEN
|
||||||
dnl -------------------------------------------------
|
dnl -------------------------------------------------
|
||||||
dnl Verify if fdopen is available, prototyped, and
|
dnl Verify if fdopen is available, prototyped, and
|
||||||
|
Loading…
Reference in New Issue
Block a user