@@ -24,19 +24,28 @@ if test "$PHP_MONGODB" != "no"; then
24
24
dnl Check PHP version is compatible with this extension
25
25
AC_MSG_CHECKING ( [ PHP version] )
26
26
27
- if test -z "$PHP_CONFIG"; then
28
- AC_MSG_ERROR ( [ php-config not found] )
29
- fi
27
+ if test -z "${PHP_VERSION_ID}"; then
28
+ if test -z "$PHP_CONFIG"; then
29
+ AC_MSG_ERROR ( [ php-config not found] )
30
+ fi
30
31
31
- PHP_MONGODB_PHP_VERSION=`${PHP_CONFIG} --version`
32
- PHP_MONGODB_PHP_VERSION_ID=`${PHP_CONFIG} --vernum`
32
+ PHP_MONGODB_PHP_VERSION=`${PHP_CONFIG} --version`
33
+ PHP_MONGODB_PHP_VERSION_ID=`${PHP_CONFIG} --vernum`
34
+ else
35
+ PHP_MONGODB_PHP_VERSION="${PHP_VERSION}"
36
+ PHP_MONGODB_PHP_VERSION_ID="${PHP_VERSION_ID}"
37
+ fi
33
38
34
39
AC_MSG_RESULT ( $PHP_MONGODB_PHP_VERSION )
35
40
36
41
if test "$PHP_MONGODB_PHP_VERSION_ID" -lt "70400"; then
37
42
AC_MSG_ERROR ( [ not supported. Need a PHP version >= 7.4.0 (found $PHP_MONGODB_PHP_VERSION)] )
38
43
fi
39
44
45
+ PHP_MONGODB_STD_CFLAGS=""
46
+ PHP_MONGODB_DEV_CFLAGS=""
47
+ PHP_MONGODB_COVERAGE_CFLAGS=""
48
+
40
49
PHP_ARG_ENABLE([ mongodb-developer-flags] ,
41
50
[ whether to enable developer build flags] ,
42
51
[ AS_HELP_STRING ( [ --enable-mongodb-developer-flags] ,
@@ -46,54 +55,53 @@ if test "$PHP_MONGODB" != "no"; then
46
55
PHP_MONGODB_VALIDATE_ARG([ PHP_MONGODB_DEVELOPER_FLAGS] , [ yes no] )
47
56
48
57
if test "$PHP_MONGODB_DEVELOPER_FLAGS" = "yes"; then
58
+ PHP_MONGODB_STD_CFLAGS="-g -O0 -Wall"
59
+
49
60
dnl Warn about functions which might be candidates for format attributes
50
- AX_CHECK_COMPILE_FLAG ( - Wmissing-format-attribute , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wmissing-format-attribute" ,, - Werror )
61
+ AX_CHECK_COMPILE_FLAG ( - Wmissing-format-attribute , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wmissing-format-attribute" ,, - Werror )
51
62
dnl Avoid duplicating values for an enum
52
- AX_CHECK_COMPILE_FLAG ( - Wduplicate-enum , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wduplicate-enum" ,, - Werror )
63
+ AX_CHECK_COMPILE_FLAG ( - Wduplicate-enum , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wduplicate-enum" ,, - Werror )
53
64
dnl Warns on mismatches between #ifndef and #define header guards
54
- AX_CHECK_COMPILE_FLAG ( - Wheader-guard , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wheader-guard" ,, - Werror )
65
+ AX_CHECK_COMPILE_FLAG ( - Wheader-guard , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wheader-guard" ,, - Werror )
55
66
dnl logical not of a non-boolean expression
56
- AX_CHECK_COMPILE_FLAG ( - Wlogical-not-parentheses , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wlogical-not-parentheses" ,, - Werror )
67
+ AX_CHECK_COMPILE_FLAG ( - Wlogical-not-parentheses , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wlogical-not-parentheses" ,, - Werror )
57
68
dnl Warn about suspicious uses of logical operators in expressions
58
- AX_CHECK_COMPILE_FLAG ( - Wlogical-op , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wlogical-op" ,, - Werror )
69
+ AX_CHECK_COMPILE_FLAG ( - Wlogical-op , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wlogical-op" ,, - Werror )
59
70
dnl memory error detector.
60
71
dnl FIXME: -fsanitize=address,undefined for clang. The AX_CHECK_COMPILE_FLAG macro isn't happy about that string :(
61
- AX_CHECK_COMPILE_FLAG ( - fsanitize-address , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - fsanitize-address" ,, - Werror )
72
+ AX_CHECK_COMPILE_FLAG ( - fsanitize-address , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - fsanitize-address" ,, - Werror )
62
73
dnl Enable frame debugging
63
- AX_CHECK_COMPILE_FLAG ( - fno-omit-frame-pointer , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - fno-omit-frame-pointer" ,, - Werror )
74
+ AX_CHECK_COMPILE_FLAG ( - fno-omit-frame-pointer , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - fno-omit-frame-pointer" ,, - Werror )
64
75
dnl Make sure we don't optimize calls
65
- AX_CHECK_COMPILE_FLAG ( - fno-optimize-sibling-calls , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - fno-optimize-sibling-calls" ,, - Werror )
66
- AX_CHECK_COMPILE_FLAG ( - Wlogical-op-parentheses , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wlogical-op-parentheses" ,, - Werror )
67
- AX_CHECK_COMPILE_FLAG ( - Wpointer-bool-conversion , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wpointer-bool-conversion" ,, - Werror )
68
- AX_CHECK_COMPILE_FLAG ( - Wbool-conversion , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wbool-conversion" ,, - Werror )
69
- AX_CHECK_COMPILE_FLAG ( - Wloop-analysis , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wloop-analysis" ,, - Werror )
70
- AX_CHECK_COMPILE_FLAG ( - Wsizeof-array-argument , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wsizeof-array-argument" ,, - Werror )
71
- AX_CHECK_COMPILE_FLAG ( - Wstring-conversion , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wstring-conversion" ,, - Werror )
72
- AX_CHECK_COMPILE_FLAG ( - Wno-variadic-macros , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wno-variadic-macros" ,, - Werror )
73
- AX_CHECK_COMPILE_FLAG ( - Wno-sign-compare , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wno-sign-compare" ,, - Werror )
74
- AX_CHECK_COMPILE_FLAG ( - fstack-protector , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - fstack-protector" ,, - Werror )
75
- AX_CHECK_COMPILE_FLAG ( - fno-exceptions , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - fno-exceptions" ,, - Werror )
76
- AX_CHECK_COMPILE_FLAG ( - Wformat-security , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wformat-security" ,, - Werror )
77
- AX_CHECK_COMPILE_FLAG ( - Wformat-nonliteral , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wformat-nonliteral" ,, - Werror )
78
- AX_CHECK_COMPILE_FLAG ( - Winit-self , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Winit-self" ,, - Werror )
79
- AX_CHECK_COMPILE_FLAG ( - Wwrite-strings , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wwrite-strings" ,, - Werror )
80
- AX_CHECK_COMPILE_FLAG ( - Wenum-compare , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wenum-compare" ,, - Werror )
81
- AX_CHECK_COMPILE_FLAG ( - Wempty-body , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wempty-body" ,, - Werror )
82
- AX_CHECK_COMPILE_FLAG ( - Wparentheses , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wparentheses" ,, - Werror )
83
- AX_CHECK_COMPILE_FLAG ( - Wmaybe-uninitialized , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wmaybe-uninitialized" ,, - Werror )
84
- AX_CHECK_COMPILE_FLAG ( - Wimplicit-fallthrough , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wimplicit-fallthrough" ,, - Werror )
85
- AX_CHECK_COMPILE_FLAG ( - Werror , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Werror" ,, - Werror )
86
- AX_CHECK_COMPILE_FLAG ( - Wextra , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wextra" ,, - Werror )
87
- AX_CHECK_COMPILE_FLAG ( - Wno-unused-parameter , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wno-unused-parameter" ,, - Werror )
88
- AX_CHECK_COMPILE_FLAG ( - Wno-unused-but-set-variable , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wno-unused-but-set-variable" ,, - Werror )
89
- AX_CHECK_COMPILE_FLAG ( - Wno-missing-field-initializers , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wno-missing-field-initializers" ,, - Werror )
76
+ AX_CHECK_COMPILE_FLAG ( - fno-optimize-sibling-calls , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - fno-optimize-sibling-calls" ,, - Werror )
77
+ AX_CHECK_COMPILE_FLAG ( - Wlogical-op-parentheses , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wlogical-op-parentheses" ,, - Werror )
78
+ AX_CHECK_COMPILE_FLAG ( - Wpointer-bool-conversion , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wpointer-bool-conversion" ,, - Werror )
79
+ AX_CHECK_COMPILE_FLAG ( - Wbool-conversion , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wbool-conversion" ,, - Werror )
80
+ AX_CHECK_COMPILE_FLAG ( - Wloop-analysis , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wloop-analysis" ,, - Werror )
81
+ AX_CHECK_COMPILE_FLAG ( - Wsizeof-array-argument , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wsizeof-array-argument" ,, - Werror )
82
+ AX_CHECK_COMPILE_FLAG ( - Wstring-conversion , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wstring-conversion" ,, - Werror )
83
+ AX_CHECK_COMPILE_FLAG ( - Wno-variadic-macros , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wno-variadic-macros" ,, - Werror )
84
+ AX_CHECK_COMPILE_FLAG ( - Wno-sign-compare , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wno-sign-compare" ,, - Werror )
85
+ AX_CHECK_COMPILE_FLAG ( - fstack-protector , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - fstack-protector" ,, - Werror )
86
+ AX_CHECK_COMPILE_FLAG ( - fno-exceptions , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - fno-exceptions" ,, - Werror )
87
+ AX_CHECK_COMPILE_FLAG ( - Wformat-security , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wformat-security" ,, - Werror )
88
+ AX_CHECK_COMPILE_FLAG ( - Wformat-nonliteral , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wformat-nonliteral" ,, - Werror )
89
+ AX_CHECK_COMPILE_FLAG ( - Winit-self , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Winit-self" ,, - Werror )
90
+ AX_CHECK_COMPILE_FLAG ( - Wwrite-strings , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wwrite-strings" ,, - Werror )
91
+ AX_CHECK_COMPILE_FLAG ( - Wenum-compare , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wenum-compare" ,, - Werror )
92
+ AX_CHECK_COMPILE_FLAG ( - Wempty-body , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wempty-body" ,, - Werror )
93
+ AX_CHECK_COMPILE_FLAG ( - Wparentheses , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wparentheses" ,, - Werror )
94
+ AX_CHECK_COMPILE_FLAG ( - Wmaybe-uninitialized , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wmaybe-uninitialized" ,, - Werror )
95
+ AX_CHECK_COMPILE_FLAG ( - Wimplicit-fallthrough , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wimplicit-fallthrough" ,, - Werror )
96
+ AX_CHECK_COMPILE_FLAG ( - Werror , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Werror" ,, - Werror )
97
+ AX_CHECK_COMPILE_FLAG ( - Wextra , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wextra" ,, - Werror )
98
+ AX_CHECK_COMPILE_FLAG ( - Wno-unused-parameter , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wno-unused-parameter" ,, - Werror )
99
+ AX_CHECK_COMPILE_FLAG ( - Wno-unused-but-set-variable , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wno-unused-but-set-variable" ,, - Werror )
100
+ AX_CHECK_COMPILE_FLAG ( - Wno-missing-field-initializers , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wno-missing-field-initializers" ,, - Werror )
90
101
91
102
if test "$PHP_MONGODB_PHP_VERSION_ID" -ge "80108"; then
92
- AX_CHECK_COMPILE_FLAG ( - Wstrict-prototypes , _MAINTAINER_CFLAGS ="$_MAINTAINER_CFLAGS - Wstrict-prototypes" ,, - Werror )
103
+ AX_CHECK_COMPILE_FLAG ( - Wstrict-prototypes , PHP_MONGODB_DEV_CFLAGS ="$PHP_MONGODB_DEV_CFLAGS - Wstrict-prototypes" ,, - Werror )
93
104
fi
94
-
95
- MAINTAINER_CFLAGS="$_MAINTAINER_CFLAGS"
96
- STD_CFLAGS="-g -O0 -Wall"
97
105
fi
98
106
99
107
@@ -110,13 +118,11 @@ if test "$PHP_MONGODB" != "no"; then
110
118
AC_MSG_ERROR ( code coverage is not supported for static builds )
111
119
fi
112
120
113
- COVERAGE_CFLAGS="--coverage -g"
114
- COVERAGE_LDFLAGS="--coverage"
115
-
116
- MONGODB_SHARED_LIBADD="$MONGODB_SHARED_LIBADD $COVERAGE_LDFLAGS"
121
+ PHP_MONGODB_COVERAGE_CFLAGS="--coverage -g"
122
+ MONGODB_SHARED_LIBADD="$MONGODB_SHARED_LIBADD --coverage"
117
123
fi
118
124
119
- PHP_MONGODB_CFLAGS="$STD_CFLAGS $MAINTAINER_CFLAGS $COVERAGE_CFLAGS "
125
+ PHP_MONGODB_CFLAGS="$PHP_MONGODB_STD_CFLAGS $PHP_MONGODB_DEV_CFLAGS $PHP_MONGODB_COVERAGE_CFLAGS "
120
126
121
127
PHP_MONGODB_SOURCES="\
122
128
php_phongo.c \
@@ -307,7 +313,7 @@ if test "$PHP_MONGODB" != "no"; then
307
313
fi
308
314
309
315
if test "$PHP_MONGODB_SYSTEM_LIBS" = "no"; then
310
- PHP_MONGODB_BUNDLED_CFLAGS="$STD_CFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION"
316
+ PHP_MONGODB_BUNDLED_CFLAGS="$PHP_MONGODB_STD_CFLAGS -DBSON_COMPILATION -DMONGOC_COMPILATION"
311
317
312
318
dnl CheckUtf8Proc.m4 will modify this when using bundled utf8proc
313
319
PHP_MONGODB_UTF8PROC_CFLAGS=""
@@ -318,6 +324,9 @@ if test "$PHP_MONGODB" != "no"; then
318
324
dnl Endian.m4 will modify this when using bundled libmongocrypt
319
325
PHP_MONGODB_LIBMONGOCRYPT_CFLAGS=""
320
326
327
+ dnl Save CPPFLAGS, which PlatformFlags.m4 modifies for subsequent M4 scripts
328
+ old_CPPFLAGS="$CPPFLAGS"
329
+
321
330
dnl Avoid using AC_CONFIG_MACRO_DIR, which might conflict with PHP
322
331
m4_include ( PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_check_compile_flag.m4 )
323
332
m4_include ( PHP_MONGODB_BASEDIR/scripts/autotools/m4/ax_prototype.m4 )
@@ -350,6 +359,9 @@ if test "$PHP_MONGODB" != "no"; then
350
359
m4_include ( PHP_MONGODB_BASEDIR/scripts/autotools/libmongocrypt/Endian.m4 )
351
360
m4_include ( PHP_MONGODB_BASEDIR/scripts/autotools/libmongocrypt/Version.m4 )
352
361
362
+ dnl Restore CPPFLAGS once all M4 scripts have executed
363
+ CPPFLAGS="$old_CPPFLAGS"
364
+
353
365
PHP_MONGODB_BSON_VERSION_STRING="Bundled ($libbson_VERSION_FULL)"
354
366
PHP_MONGODB_MONGOC_VERSION_STRING="Bundled ($libmongoc_VERSION_FULL)"
355
367
@@ -510,7 +522,6 @@ if test "$PHP_MONGODB" != "no"; then
510
522
dnl This must come after PHP_NEW_EXTENSION, otherwise the srcdir won't be set
511
523
PHP_ADD_MAKEFILE_FRAGMENT
512
524
513
- dnl The libmongocrypt line intentionally uses the PHP_LIBBSON flag as that decides whether to build against bundled or system libraries.
514
525
AC_CONFIG_COMMANDS_POST ( [
515
526
if test "$enable_static" = "no"; then
516
527
echo "
@@ -519,9 +530,10 @@ mongodb was configured with the following options:
519
530
Build configuration:
520
531
CC : $CC
521
532
CFLAGS : $CFLAGS
522
- Extra CFLAGS : $STD_CFLAGS $EXTRA_CFLAGS
523
- Developers flags (slow) : $MAINTAINER_CFLAGS
524
- Code Coverage flags (extra slow) : $COVERAGE_CFLAGS
533
+ CPPFLAGS : $CPPFLAGS
534
+ Extra flags : $PHP_MONGODB_STD_CFLAGS
535
+ Developer flags (slow) : $PHP_MONGODB_DEV_CFLAGS
536
+ Code Coverage flags (extra slow) : $PHP_MONGODB_COVERAGE_CFLAGS
525
537
libmongoc : $PHP_MONGODB_BSON_VERSION_STRING
526
538
libbson : $PHP_MONGODB_MONGOC_VERSION_STRING
527
539
libmongocrypt : $PHP_MONGODB_MONGOCRYPT_VERSION_STRING
0 commit comments