xref: /PHP-5.4/ext/mysqlnd/config9.m4 (revision c044164a)
1dnl
2dnl $Id$
3dnl config.m4 for mysqlnd driver
4
5PHP_ARG_ENABLE(mysqlnd, whether to enable mysqlnd,
6  [  --enable-mysqlnd        Enable mysqlnd explicitly, will be done implicitly
7                          when required by other extensions], no, yes)
8
9PHP_ARG_ENABLE(mysqlnd_compression_support, whether to disable compressed protocol support in mysqlnd,
10[  --disable-mysqlnd-compression-support
11                            Disable support for the MySQL compressed protocol in mysqlnd], yes, no)
12
13if test -z "$PHP_ZLIB_DIR"; then
14  PHP_ARG_WITH(zlib-dir, for the location of libz,
15  [  --with-zlib-dir[=DIR]       mysqlnd: Set the path to libz install prefix], no, no)
16fi
17
18dnl If some extension uses mysqlnd it will get compiled in PHP core
19if test "$PHP_MYSQLND" != "no" || test "$PHP_MYSQLND_ENABLED" = "yes"; then
20  mysqlnd_ps_sources="mysqlnd_ps.c mysqlnd_ps_codec.c"
21  mysqlnd_base_sources="mysqlnd.c mysqlnd_alloc.c mysqlnd_bt.c mysqlnd_charset.c mysqlnd_wireprotocol.c \
22                   mysqlnd_loaddata.c mysqlnd_reverse_api.c mysqlnd_net.c \
23                   mysqlnd_statistics.c mysqlnd_driver.c mysqlnd_ext_plugin.c mysqlnd_auth.c \
24				   mysqlnd_result.c mysqlnd_result_meta.c mysqlnd_debug.c\
25				   mysqlnd_block_alloc.c mysqlnd_plugin.c php_mysqlnd.c"
26
27
28  if test "$PHP_MYSQLND_COMPRESSION_SUPPORT" != "no"; then
29    AC_DEFINE([MYSQLND_COMPRESSION_WANTED], 1, [Enable compressed protocol support])
30  fi
31  AC_DEFINE([MYSQLND_SSL_SUPPORTED], 1, [Enable SSL support])
32
33  mysqlnd_sources="$mysqlnd_base_sources $mysqlnd_ps_sources"
34  PHP_NEW_EXTENSION(mysqlnd, $mysqlnd_sources, $ext_shared)
35  PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)
36  PHP_INSTALL_HEADERS([ext/mysqlnd/])
37fi
38
39if test "$PHP_MYSQLND" != "no" || test "$PHP_MYSQLND_ENABLED" = "yes" || test "$PHP_MYSQLI" != "no"; then
40  PHP_ADD_BUILD_DIR([ext/mysqlnd], 1)
41
42  dnl This creates a file so it has to be after above macros
43  PHP_CHECK_TYPES([int8 uint8 int16 uint16 int32 uint32 uchar ulong int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t], [
44    ext/mysqlnd/php_mysqlnd_config.h
45  ],[
46#ifdef HAVE_SYS_TYPES_H
47#include <sys/types.h>
48#endif
49#ifdef HAVE_STDINT_H
50#include <stdint.h>
51#endif
52  ])
53fi
54
55dnl
56dnl Check if the compiler supports Decimal32/64/128 types from the IEEE-754 2008 version
57dnl References: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1657.pdf
58dnl http://speleotrove.com/decimal/
59dnl
60AC_CACHE_CHECK([whether whether compiler supports Decimal32/64/128 types], ac_cv_decimal_fp_supported,[
61AC_TRY_RUN( [
62#include <stdio.h>
63
64int main(int argc, char **argv) {
65	typedef float dec32 __attribute__((mode(SD)));
66	dec32 k = 99.49f;
67	double d2 = (double)k;
68	return 0;
69}
70],[
71  ac_cv_decimal_fp_supported=yes
72],[
73  ac_cv_decimal_fp_supported=no
74],[
75  ac_cv_decimal_fp_supported=no
76])])
77if test "$ac_cv_decimal_fp_supported" = "yes"; then
78  AC_DEFINE(HAVE_DECIMAL_FP_SUPPORT, 1, [Define if the compiler supports Decimal32/64/128 types.])
79fi
80