mirror of
https://github.com/php/php-src.git
synced 2024-12-24 17:30:48 +08:00
545a29d0cb
* PHP-7.1: Fix C++11 and up compatibility for zend_finite and more
134 lines
2.8 KiB
Plaintext
134 lines
2.8 KiB
Plaintext
dnl $Id$
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
AC_INIT(zend.c)
|
|
AM_INIT_AUTOMAKE(zend, 0.80A, nodefine)
|
|
AM_CONFIG_HEADER(zend_config.h)
|
|
AM_SANITY_CHECK
|
|
AM_MAINTAINER_MODE
|
|
AC_PROG_CC
|
|
AM_PROG_CC_STDC
|
|
ZEND_VERSION=$VERSION
|
|
AC_ZEND_C_BIGENDIAN
|
|
|
|
AH_TOP([
|
|
#if defined(__GNUC__) && __GNUC__ >= 4
|
|
# define ZEND_API __attribute__ ((visibility("default")))
|
|
# define ZEND_DLEXPORT __attribute__ ((visibility("default")))
|
|
#else
|
|
# define ZEND_API
|
|
# define ZEND_DLEXPORT
|
|
#endif
|
|
|
|
#define ZEND_DLIMPORT
|
|
|
|
#undef uint
|
|
#undef ulong
|
|
])
|
|
|
|
AH_BOTTOM([
|
|
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
|
|
|
|
#ifdef HAVE_STDLIB_H
|
|
# include <stdlib.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_TYPES_H
|
|
# include <sys/types.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_SELECT_H
|
|
#include <sys/select.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_IEEEFP_H
|
|
# include <ieeefp.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_STRING_H
|
|
# include <string.h>
|
|
#else
|
|
# include <strings.h>
|
|
#endif
|
|
|
|
#if ZEND_BROKEN_SPRINTF
|
|
int zend_sprintf(char *buffer, const char *format, ...);
|
|
#else
|
|
# define zend_sprintf sprintf
|
|
#endif
|
|
|
|
#include <math.h>
|
|
|
|
#ifndef zend_isnan
|
|
#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
|
|
#define zend_isnan(a) isnan(a)
|
|
#elif defined(HAVE_FPCLASS)
|
|
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
|
|
#else
|
|
#define zend_isnan(a) ((a) != (a))
|
|
#endif
|
|
#endif
|
|
|
|
#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
|
|
#define zend_isinf(a) isinf(a)
|
|
#elif defined(INFINITY)
|
|
/* Might not work, but is required by ISO C99 */
|
|
#define zend_isinf(a) (((a)==INFINITY || (a)==-INFINITY)?1:0)
|
|
#elif defined(HAVE_FPCLASS)
|
|
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
|
|
#else
|
|
#define zend_isinf(a) 0
|
|
#endif
|
|
|
|
#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
|
|
#define zend_finite(a) isfinite(a)
|
|
#elif defined(HAVE_FINITE)
|
|
#define zend_finite(a) finite(a)
|
|
#elif defined(fpclassify)
|
|
#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0)
|
|
#else
|
|
#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
|
|
#endif
|
|
|
|
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
|
|
|
|
])
|
|
|
|
dnl We want this one before the checks, so the checks can modify CFLAGS.
|
|
test -z "$CFLAGS" && auto_cflags=1
|
|
|
|
AC_CHECK_SIZEOF(long, 8)
|
|
AC_CHECK_SIZEOF(int, 4)
|
|
|
|
sinclude(Zend.m4)
|
|
|
|
LIBZEND_BASIC_CHECKS
|
|
LIBZEND_LIBDL_CHECKS
|
|
LIBZEND_DLSYM_CHECK
|
|
|
|
AM_PROG_LIBTOOL
|
|
if test "$enable_debug" != "yes"; then
|
|
AM_SET_LIBTOOL_VARIABLE([--silent])
|
|
fi
|
|
|
|
dnl
|
|
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
|
|
dnl and source packages. This should be harmless on other OSs.
|
|
dnl
|
|
if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
|
|
CFLAGS="$CFLAGS -I/usr/pkg/include"
|
|
LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
|
|
fi
|
|
|
|
LIBZEND_ENABLE_DEBUG
|
|
LIBZEND_OTHER_CHECKS
|
|
|
|
ZEND_EXTRA_LIBS="$LIBS"
|
|
LIBS=""
|
|
AC_SUBST(ZEND_EXTRA_LIBS)
|
|
AC_OUTPUT(Makefile)
|
|
|
|
# Local Variables:
|
|
# tab-width: 4
|
|
# End:
|