@@ -5,12 +5,23 @@ PHP_ARG_ENABLE([mongodb],
5
5
[ Enable MongoDB support] )] )
6
6
7
7
if test "$PHP_MONGODB" != "no"; then
8
- AC_MSG_CHECKING ( [ Check for supported PHP versions] )
9
- PHP_MONGODB_FOUND_VERSION=`${PHP_CONFIG} --version`
10
- PHP_MONGODB_FOUND_VERNUM=`echo "${PHP_MONGODB_FOUND_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([ $] 1 * 100 + [ $] 2) * 100 + [ $] 3;}'`
11
- AC_MSG_RESULT ( $PHP_MONGODB_FOUND_VERSION )
12
- if test "$PHP_MONGODB_FOUND_VERNUM" -lt "50500"; then
13
- AC_MSG_ERROR ( [ not supported. Need a PHP version >= 5.5.0 (found $PHP_MONGODB_FOUND_VERSION)] )
8
+ dnl Check PHP version is compatible with this extension
9
+ AC_MSG_CHECKING ( [ PHP version] )
10
+
11
+ PHP_MONGODB_PHP_VERSION=$PHP_VERSION
12
+ PHP_MONGODB_PHP_VERSION_ID=$PHP_VERSION_ID
13
+
14
+ if test -z "$PHP_MONGODB_PHP_VERSION"; then
15
+ if test -z "$PHP_CONFIG"; then
16
+ AC_MSG_ERROR ( [ php-config not found] )
17
+ fi
18
+ PHP_MONGODB_PHP_VERSION=`${PHP_CONFIG} --version`
19
+ PHP_MONGODB_PHP_VERSION_ID=`echo "${PHP_MONGODB_PHP_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([ $] 1 * 100 + [ $] 2) * 100 + [ $] 3;}'`
20
+ fi
21
+
22
+ AC_MSG_RESULT ( $PHP_MONGODB_PHP_VERSION )
23
+ if test "$PHP_MONGODB_PHP_VERSION_ID" -lt "50500"; then
24
+ AC_MSG_ERROR ( [ not supported. Need a PHP version >= 5.5.0 (found $PHP_MONGODB_PHP_VERSION)] )
14
25
fi
15
26
16
27
PHP_ARG_ENABLE([ developer-flags] ,
@@ -173,18 +184,18 @@ if test "$PHP_MONGODB" != "no"; then
173
184
AC_MSG_CHECKING ( for libbson )
174
185
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbson-1.0; then
175
186
if $PKG_CONFIG libbson-1.0 --atleast-version 1.9.0; then
176
- LIBBSON_INC =`$PKG_CONFIG libbson-1.0 --cflags`
177
- LIBBSON_LIB =`$PKG_CONFIG libbson-1.0 --libs`
178
- LIBBSON_VER =`$PKG_CONFIG libbson-1.0 --modversion`
179
- AC_MSG_RESULT ( version $LIBBSON_VER found )
187
+ PHP_MONGODB_BSON_CFLAGS =`$PKG_CONFIG libbson-1.0 --cflags`
188
+ PHP_MONGODB_BSON_LIBS =`$PKG_CONFIG libbson-1.0 --libs`
189
+ PHP_MONGODB_BSON_VERSION =`$PKG_CONFIG libbson-1.0 --modversion`
190
+ AC_MSG_RESULT ( version $PHP_MONGODB_BSON_VERSION found )
180
191
else
181
192
AC_MSG_ERROR ( system libbson must be upgraded to version >= 1.9.0 )
182
193
fi
183
194
else
184
195
AC_MSG_ERROR ( pkgconfig and libbson must be installed )
185
196
fi
186
- PHP_EVAL_INCLINE($LIBBSON_INC)
187
- PHP_EVAL_LIBLINE($LIBBSON_LIB , MONGODB_SHARED_LIBADD)
197
+ PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_BSON_CFLAGS"
198
+ PHP_EVAL_LIBLINE($PHP_MONGODB_BSON_LIBS , MONGODB_SHARED_LIBADD)
188
199
AC_DEFINE ( HAVE_SYSTEM_LIBBSON , 1 , [ Use system libbson] )
189
200
fi
190
201
@@ -197,52 +208,66 @@ if test "$PHP_MONGODB" != "no"; then
197
208
AC_MSG_CHECKING ( for libmongoc )
198
209
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libmongoc-1.0; then
199
210
if $PKG_CONFIG libmongoc-1.0 --atleast-version 1.9.0; then
200
- LIBMONGOC_INC=`$PKG_CONFIG libmongoc-1.0 --cflags`
201
- LIBMONGOC_LIB=`$PKG_CONFIG libmongoc-1.0 --libs`
202
- LIBMONGOC_VER=`$PKG_CONFIG libmongoc-1.0 --modversion`
203
- AC_MSG_RESULT ( version $LIBMONGOC_VER found )
204
-
211
+ PHP_MONGODB_MONGOC_CFLAGS=`$PKG_CONFIG libmongoc-1.0 --cflags`
212
+ PHP_MONGODB_MONGOC_LIBS=`$PKG_CONFIG libmongoc-1.0 --libs`
213
+ PHP_MONGODB_MONGOC_VERSION=`$PKG_CONFIG libmongoc-1.0 --modversion`
214
+ AC_MSG_RESULT ( version $PHP_MONGODB_MONGOC_VERSION found )
205
215
else
206
216
AC_MSG_ERROR ( system libmongoc must be upgraded to version >= 1.9.0 )
207
217
fi
208
218
else
209
219
AC_MSG_ERROR ( pkgconfig and libmongoc must be installed )
210
220
fi
211
- PHP_EVAL_INCLINE($LIBMONGOC_INC)
212
- PHP_EVAL_LIBLINE($LIBMONGOC_LIB , MONGODB_SHARED_LIBADD)
221
+ PHP_MONGODB_CFLAGS="$PHP_MONGODB_CFLAGS $PHP_MONGODB_MONGOC_CFLAGS"
222
+ PHP_EVAL_LIBLINE($PHP_MONGODB_MONGOC_LIBS , MONGODB_SHARED_LIBADD)
213
223
AC_DEFINE ( HAVE_SYSTEM_LIBMONGOC , 1 , [ Use system libmongoc] )
214
224
fi
215
225
216
226
if test "$PHP_LIBBSON" = "no" -a "$PHP_LIBMONGOC" = "no"; then
217
227
PHP_MONGODB_BSON_CFLAGS="$STD_CFLAGS -DBSON_COMPILATION"
218
228
PHP_MONGODB_MONGOC_CFLAGS="$STD_CFLAGS -DMONGOC_COMPILATION -DMONGOC_TRACE"
219
229
230
+ dnl M4 doesn't know if we're building statically or as a shared module, so
231
+ dnl attempt to include both paths while ignoring errors. If neither path
232
+ dnl exists, report an error during configure (this is later than M4 parsing
233
+ dnl during phpize but better than nothing).
234
+ m4_pushdef ( [ _include] ,[
235
+ if test ! \( -f "$1 " -o -f "ext/mongodb/$1 " \); then
236
+ AC_MSG_ERROR ( [ m4 could not include $1 : No such file or directory] )
237
+ fi
238
+ m4_builtin ( [ sinclude] ,[ $1 ] )
239
+ m4_builtin ( [ sinclude] ,[ ext/mongodb/] [ $1 ] )
240
+ ] )
241
+
220
242
dnl Avoid using AC_CONFIG_MACRO_DIR, which might conflict with PHP
221
- m4_include ( [ scripts/build/autotools/m4/ac_compile_check_sizeof.m4] )
222
- m4_include ( [ scripts/build/autotools/m4/ac_create_stdint_h.m4] )
223
- m4_include ( [ scripts/build/autotools/m4/as_var_copy.m4] )
224
- m4_include ( [ scripts/build/autotools/m4/ax_check_compile_flag.m4] )
225
- m4_include ( [ scripts/build/autotools/m4/ax_prototype.m4] )
226
- m4_include ( [ scripts/build/autotools/m4/ax_pthread.m4] )
227
- m4_include ( [ scripts/build/autotools/m4/pkg.m4] )
228
-
229
- m4_include ( [ scripts/build/autotools/CheckCompiler.m4] )
230
- m4_include ( [ scripts/build/autotools/CheckHost.m4] )
231
-
232
- m4_include ( [ scripts/build/autotools/libbson/CheckAtomics.m4] )
233
- m4_include ( [ scripts/build/autotools/libbson/CheckHeaders.m4] )
234
- m4_include ( [ scripts/build/autotools/libbson/Endian.m4] )
235
- m4_include ( [ scripts/build/autotools/libbson/FindDependencies.m4] )
236
- m4_include ( [ scripts/build/autotools/libbson/Versions.m4] )
237
-
238
- m4_include ( [ scripts/build/autotools/libmongoc/CheckCompression.m4] )
239
- m4_include ( [ scripts/build/autotools/libmongoc/CheckResolv.m4] )
240
- m4_include ( [ scripts/build/autotools/libmongoc/CheckSasl.m4] )
241
- m4_include ( [ scripts/build/autotools/libmongoc/CheckSSL.m4] )
242
- m4_include ( [ scripts/build/autotools/libmongoc/FindDependencies.m4] )
243
- m4_include ( [ scripts/build/autotools/libmongoc/PlatformFlags.m4] )
244
- m4_include ( [ scripts/build/autotools/libmongoc/Versions.m4] )
245
- m4_include ( [ scripts/build/autotools/libmongoc/WeakSymbols.m4] )
243
+ _include([ scripts/build/autotools/m4/ac_compile_check_sizeof.m4] )
244
+ _include([ scripts/build/autotools/m4/ac_create_stdint_h.m4] )
245
+ _include([ scripts/build/autotools/m4/as_var_copy.m4] )
246
+ _include([ scripts/build/autotools/m4/ax_check_compile_flag.m4] )
247
+ _include([ scripts/build/autotools/m4/ax_prototype.m4] )
248
+ _include([ scripts/build/autotools/m4/ax_pthread.m4] )
249
+ _include([ scripts/build/autotools/m4/php_mongodb.m4] )
250
+ _include([ scripts/build/autotools/m4/pkg.m4] )
251
+
252
+ _include([ scripts/build/autotools/CheckCompiler.m4] )
253
+ _include([ scripts/build/autotools/CheckHost.m4] )
254
+
255
+ _include([ scripts/build/autotools/libbson/CheckAtomics.m4] )
256
+ _include([ scripts/build/autotools/libbson/CheckHeaders.m4] )
257
+ _include([ scripts/build/autotools/libbson/Endian.m4] )
258
+ _include([ scripts/build/autotools/libbson/FindDependencies.m4] )
259
+ _include([ scripts/build/autotools/libbson/Versions.m4] )
260
+
261
+ _include([ scripts/build/autotools/libmongoc/CheckCompression.m4] )
262
+ _include([ scripts/build/autotools/libmongoc/CheckResolv.m4] )
263
+ _include([ scripts/build/autotools/libmongoc/CheckSasl.m4] )
264
+ _include([ scripts/build/autotools/libmongoc/CheckSSL.m4] )
265
+ _include([ scripts/build/autotools/libmongoc/FindDependencies.m4] )
266
+ _include([ scripts/build/autotools/libmongoc/PlatformFlags.m4] )
267
+ _include([ scripts/build/autotools/libmongoc/Versions.m4] )
268
+ _include([ scripts/build/autotools/libmongoc/WeakSymbols.m4] )
269
+
270
+ m4_popdef ( [ _include] )
246
271
247
272
AC_SUBST ( BSON_EXTRA_ALIGN , 0 )
248
273
AC_SUBST ( BSON_OS , 1 )
@@ -271,42 +296,40 @@ if test "$PHP_MONGODB" != "no"; then
271
296
dnl Generated with: find src/libmongoc/src/zlib-1.2.11 -maxdepth 1 -name '*.c' -print0 | cut -sz -d / -f 5- | sort -z | tr '\000' ' '
272
297
PHP_MONGODB_ZLIB_SOURCES="adler32.c compress.c crc32.c deflate.c gzclose.c gzlib.c gzread.c gzwrite.c infback.c inffast.c inflate.c inftrees.c trees.c uncompr.c zutil.c"
273
298
274
- PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb) [ src/libbson/src/bson] , $PHP_MONGODB_BSON_SOURCES, $PHP_MONGODB_BSON_CFLAGS, shared_objects_mongodb, yes )
275
- PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb) [ src/libbson/src/jsonsl] , $PHP_MONGODB_JSONSL_SOURCES, $PHP_MONGODB_BSON_CFLAGS, shared_objects_mongodb, yes )
276
- PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb) [ src/libmongoc/src/mongoc] , $PHP_MONGODB_MONGOC_SOURCES, $PHP_MONGODB_MONGOC_CFLAGS, shared_objects_mongodb, yes )
299
+ PHP_MONGODB_ADD_SOURCES( [ src/libbson/src/bson/ ] , $PHP_MONGODB_BSON_SOURCES, $PHP_MONGODB_BSON_CFLAGS)
300
+ PHP_MONGODB_ADD_SOURCES( [ src/libbson/src/jsonsl/ ] , $PHP_MONGODB_JSONSL_SOURCES, $PHP_MONGODB_BSON_CFLAGS)
301
+ PHP_MONGODB_ADD_SOURCES( [ src/libmongoc/src/mongoc/ ] , $PHP_MONGODB_MONGOC_SOURCES, $PHP_MONGODB_MONGOC_CFLAGS)
277
302
278
- PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb) [ / src/libbson/src/] )
279
- PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb) [ / src/libbson/src/bson/] )
280
- PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb) [ / src/libbson/src/jsonsl/] )
281
- PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb) [ / src/libmongoc/src/mongoc/] )
303
+ PHP_MONGODB_ADD_INCLUDE( [ src/libbson/src/] )
304
+ PHP_MONGODB_ADD_INCLUDE( [ src/libbson/src/bson/] )
305
+ PHP_MONGODB_ADD_INCLUDE( [ src/libbson/src/jsonsl/] )
306
+ PHP_MONGODB_ADD_INCLUDE( [ src/libmongoc/src/mongoc/] )
282
307
283
- PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[ /src/libbson/src/jsonsl/] )
284
- PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[ /src/libbson/src/bson/] )
285
- PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[ /src/libmongoc/src/mongoc/] )
308
+ PHP_MONGODB_ADD_BUILD_DIR([ src/libbson/src/bson/] )
309
+ PHP_MONGODB_ADD_BUILD_DIR([ src/libbson/src/jsonsl/] )
310
+ PHP_MONGODB_ADD_BUILD_DIR([ src/libmongoc/src/mongoc/] )
311
+
312
+ dnl TODO: Use $ext_srcdir if we can move this after PHP_NEW_EXTENSION
313
+ ac_config_dir=PHP_EXT_SRCDIR(mongodb)
286
314
287
315
AC_CONFIG_FILES ( [
288
- src/libbson/src/bson/bson-config.h
289
- src/libbson/src/bson/bson-version.h
290
- src/libmongoc/src/mongoc/mongoc-config.h
291
- src/libmongoc/src/mongoc/mongoc-version.h
316
+ ${ac_config_dir}/ src/libbson/src/bson/bson-config.h
317
+ ${ac_config_dir}/ src/libbson/src/bson/bson-version.h
318
+ ${ac_config_dir}/ src/libmongoc/src/mongoc/mongoc-config.h
319
+ ${ac_config_dir}/ src/libmongoc/src/mongoc/mongoc-version.h
292
320
] )
293
321
294
322
if test "x$bundled_zlib" = "xyes"; then
295
- PHP_ADD_SOURCES_X(PHP_EXT_DIR(mongodb) [ src/libmongoc/src/zlib-1.2.11] , $PHP_MONGODB_ZLIB_SOURCES, $PHP_MONGODB_MONGOC_CFLAGS, shared_objects_mongodb, yes )
296
- PHP_ADD_INCLUDE(PHP_EXT_SRCDIR(mongodb) [ / src/libmongoc/src/zlib-1.2.11/] )
297
- PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb) [ / src/libmongoc/src/zlib-1.2.11/] )
298
- AC_CONFIG_FILES ( src/libmongoc/src/zlib-1.2.11/zconf.h )
323
+ PHP_MONGODB_ADD_SOURCES( [ src/libmongoc/src/zlib-1.2.11/ ] , $PHP_MONGODB_ZLIB_SOURCES, $PHP_MONGODB_MONGOC_CFLAGS)
324
+ PHP_MONGODB_ADD_INCLUDE( [ src/libmongoc/src/zlib-1.2.11/] )
325
+ PHP_MONGODB_ADD_BUILD_DIR( [ src/libmongoc/src/zlib-1.2.11/] )
326
+ AC_CONFIG_FILES ( [ ${ac_config_dir}/ src/libmongoc/src/zlib-1.2.11/zconf.h] )
299
327
fi
300
-
301
- dnl Apply any CFLAGS and LIBS from libbson calling AX_PTHREAD
302
- PHP_EVAL_INCLINE([ $PTHREAD_CFLAGS] )
303
- PHP_EVAL_LIBLINE([ $PTHREAD_LIBS] ,[ MONGODB_SHARED_LIBADD] )
304
328
fi
305
329
306
330
PHP_NEW_EXTENSION(mongodb, $PHP_MONGODB_SOURCES, $ext_shared,, $PHP_MONGODB_CFLAGS)
307
331
308
332
PHP_SUBST(MONGODB_SHARED_LIBADD)
309
- PHP_SUBST(EXTRA_LDFLAGS)
310
333
311
334
PHP_ADD_EXTENSION_DEP(mongodb, date)
312
335
PHP_ADD_EXTENSION_DEP(mongodb, json)
@@ -325,10 +348,17 @@ if test "$PHP_MONGODB" != "no"; then
325
348
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[ /src/MongoDB/Monitoring/] )
326
349
PHP_ADD_BUILD_DIR(PHP_EXT_BUILDDIR(mongodb)[ /src/contrib/] )
327
350
351
+ dnl Necessary to ensure that static builds include "-pthread" when linking
352
+ if test "$ext_shared" != "yes"; then
353
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $EXTRA_LDFLAGS"
354
+ fi
355
+
328
356
dnl This must come after PHP_NEW_EXTENSION, otherwise the srcdir won't be set
329
357
PHP_ADD_MAKEFILE_FRAGMENT
330
358
331
- AC_CONFIG_COMMANDS_POST ( [ echo "
359
+ AC_CONFIG_COMMANDS_POST ( [
360
+ if test "$enable_static" = "no"; then
361
+ echo "
332
362
mongodb was configured with the following options:
333
363
334
364
Build configuration:
@@ -345,7 +375,9 @@ Build configuration:
345
375
Please submit bugreports at:
346
376
https://jira.mongodb.org/browse/PHPC
347
377
348
- "] )
378
+ "
379
+ fi
380
+ ] )
349
381
fi
350
382
351
383
dnl : vim: et sw=2
0 commit comments