forked from mongodb/mongo-php-driver-legacy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.m4
executable file
·158 lines (129 loc) · 5.67 KB
/
config.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
PHP_ARG_ENABLE(mongo, whether to enable Mongo extension,
[ --enable-mongo Enable the MongoDB extension])
PHP_ARG_WITH(openssl-dir, Build with OpenSSL support,
[ --with-openssl-dir[=DIR] Mongo: Include OpenSSL support], yes, no)
PHP_MONGO_CFLAGS="-I@ext_builddir@/util"
AC_DEFUN([MONGO_ADD_DIR], [
PHP_ADD_BUILD_DIR([$ext_builddir/$1], 1)
PHP_ADD_INCLUDE([$ext_builddir/$1])
PHP_ADD_INCLUDE([$ext_srcdir/$1])
])
if test "$PHP_MONGO" != "no"; then
AC_DEFINE(HAVE_MONGO, 1, [Whether you have Mongo extension])
PHP_NEW_EXTENSION(mongo, php_mongo.c mongo.c mongoclient.c bson.c cursor.c command_cursor.c cursor_shared.c collection.c db.c io_stream.c log_stream.c contrib/crypto.c contrib/php-json.c contrib/php-ssl.c gridfs/gridfs.c gridfs/gridfs_cursor.c gridfs/gridfs_file.c gridfs/gridfs_stream.c exceptions/exception.c exceptions/connection_exception.c exceptions/duplicate_key_exception.c exceptions/cursor_exception.c exceptions/protocol_exception.c exceptions/cursor_timeout_exception.c exceptions/execution_timeout_exception.c exceptions/gridfs_exception.c exceptions/result_exception.c exceptions/write_concern_exception.c types/bin_data.c types/code.c types/date.c types/db_ref.c types/id.c types/int32.c types/int64.c types/regex.c types/timestamp.c util/log.c util/pool.c mcon/bson_helpers.c mcon/collection.c mcon/connections.c mcon/manager.c mcon/mini_bson.c mcon/parse.c mcon/read_preference.c mcon/str.c mcon/utils.c mcon/contrib/md5.c mcon/contrib/strndup.c api/wire_version.c api/write.c api/batch.c batch/write.c batch/insert.c batch/update.c batch/delete.c, $ext_shared,, $PHP_MONGO_CFLAGS)
MONGO_ADD_DIR(api)
MONGO_ADD_DIR(util)
MONGO_ADD_DIR(exceptions)
MONGO_ADD_DIR(gridfs)
MONGO_ADD_DIR(types)
MONGO_ADD_DIR(batch)
MONGO_ADD_DIR(contrib)
MONGO_ADD_DIR(mcon)
MONGO_ADD_DIR(mcon/contrib)
test -z "$PHP_OPENSSL" && PHP_OPENSSL=no
if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
PHP_SETUP_OPENSSL(MONGO_SHARED_LIBADD)
AC_DEFINE(HAVE_MONGO_OPENSSL, 1, [Mongo OpenSSL support])
fi
PHP_ADD_MAKEFILE_FRAGMENT([$ext_srcdir/Makefile.servers])
dnl call acinclude func to check endian-ness
PHP_C_BIGENDIAN
if test "$ac_cv_c_bigendian_php" = "yes"; then
CFLAGS="$CFLAGS -DPHP_C_BIGENDIAN"
fi
dnl default to little-endian
case $build_os in
darwin1*.*.*)
AC_MSG_CHECKING([whether to compile for recent osx architectures])
CFLAGS="$CFLAGS -arch i386 -arch x86_64 -mmacosx-version-min=10.5"
AC_MSG_RESULT([yes])
;;
darwin*)
AC_MSG_CHECKING([whether to compile for every osx architecture ever])
CFLAGS="$CFLAGS -arch i386 -arch x86_64 -arch ppc -arch ppc64"
AC_MSG_RESULT([yes])
;;
esac
fi
PHP_ARG_ENABLE(coverage, whether to include code coverage symbols,
[ --enable-coverage Mongo: Enable code coverage symbols, maintainers only!], no, no)
if test "$PHP_COVERAGE" = "yes"; then
if test "$GCC" != "yes"; then
AC_MSG_ERROR([GCC is required for --enable-coverage])
fi
dnl Check if ccache is being used
case `$php_shtool path $CC` in
*ccache*[)] gcc_ccache=yes;;
*[)] gcc_ccache=no;;
esac
if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
fi
lcov_version_list="1.5 1.6 1.7 1.9 1.10 1.11"
AC_CHECK_PROG(LCOV, lcov, lcov)
AC_CHECK_PROG(GENHTML, genhtml, genhtml)
PHP_SUBST(LCOV)
PHP_SUBST(GENHTML)
if test "$LCOV"; then
AC_CACHE_CHECK([for lcov version], php_cv_lcov_version, [
php_cv_lcov_version=invalid
lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #'
for lcov_check_version in $lcov_version_list; do
if test "$lcov_version" = "$lcov_check_version"; then
php_cv_lcov_version="$lcov_check_version (ok)"
fi
done
])
else
lcov_msg="To enable code coverage reporting you must have one of the following LCOV versions installed: $lcov_version_list"
AC_MSG_ERROR([$lcov_msg])
fi
case $php_cv_lcov_version in
""|invalid[)]
lcov_msg="You must have one of the following versions of LCOV: $lcov_version_list (found: $lcov_version)."
AC_MSG_ERROR([$lcov_msg])
LCOV="exit 0;"
;;
esac
if test -z "$GENHTML"; then
AC_MSG_ERROR([Could not find genhtml from the LCOV package])
fi
PHP_ADD_MAKEFILE_FRAGMENT
dnl Remove all optimization flags from CFLAGS
changequote({,})
CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
changequote([,])
dnl Add the special gcc flags
CFLAGS="$CFLAGS -O0 -fprofile-arcs -ftest-coverage"
CXXFLAGS="$CXXFLAGS -O0 -fprofile-arcs -ftest-coverage"
fi
PHP_ARG_WITH(mongo-sasl, Build with Cyrus SASL support,
[ --with-mongo-sasl[=DIR] Mongo: Include Cyrus SASL support], no, no)
if test "$PHP_MONGO_SASL" != "no"; then
AC_MSG_CHECKING(for SASL)
for i in $PHP_MONGO_SASL /usr /usr/local; do
if test -f $i/include/sasl/sasl.h; then
MONGO_SASL_DIR=$i
AC_MSG_RESULT(found in $i)
break
fi
done
if test -z "$MONGO_SASL_DIR"; then
AC_MSG_RESULT(not found)
AC_MSG_ERROR([sasl.h not found!])
fi
PHP_CHECK_LIBRARY(sasl2, sasl_version,
[
PHP_ADD_INCLUDE($MONGO_SASL_DIR)
PHP_ADD_LIBRARY_WITH_PATH(sasl2, $MONGO_SASL_DIR/$PHP_LIBDIR, MONGO_SHARED_LIBADD)
AC_DEFINE(HAVE_MONGO_SASL, 1, [MONGO SASL support])
], [
AC_MSG_ERROR([MONGO SASL check failed. Please check config.log for more information.])
], [
-L$MONGO_SASL_DIR/$PHP_LIBDIR
])
fi
if test "$PHP_MONGO" != "no"; then
PHP_SUBST(MONGO_SHARED_LIBADD)
fi