-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathconfig.m4
More file actions
143 lines (125 loc) · 4.75 KB
/
config.m4
File metadata and controls
143 lines (125 loc) · 4.75 KB
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
dnl config.m4 for extension brotli
dnl Check PHP version ID:
AC_MSG_CHECKING(PHP version)
if test ! -z "$phpincludedir"; then
PHP_VERSION_ID=`grep 'PHP_VERSION_ID' $phpincludedir/main/php_version.h | sed -e 's/.* \([[0-9]]*\)/\1/g' 2>/dev/null`
elif test ! -z "$PHP_CONFIG"; then
PHP_VERSION_ID=`$PHP_CONFIG --vernum 2>/dev/null`
fi
if test x"$PHP_VERSION_ID" = "x"; then
AC_MSG_WARN([none])
else
AC_MSG_RESULT($PHP_VERSION_ID)
fi
if test $PHP_VERSION_ID -lt 70000; then
AC_MSG_ERROR([need at least PHP 7 or newer])
fi
PHP_ARG_ENABLE(brotli, whether to enable brotli support,
[ --enable-brotli Enable brotli support])
PHP_ARG_WITH(libbrotli, whether to use system brotli library,
[ --with-libbrotli Use libbrotli], no, no)
if test "$PHP_BROTLI" != "no"; then
BROTLI_MIN_VERSION=0.6
if test "$PHP_LIBBROTLI" != "no"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
AC_MSG_CHECKING(for libbrotlienc)
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbrotlienc; then
if $PKG_CONFIG libbrotlienc --atleast-version $BROTLI_MIN_VERSION; then
LIBBROTLIENC_CFLAGS=`$PKG_CONFIG libbrotlienc --cflags`
LIBBROTLIENC_LIBS=`$PKG_CONFIG libbrotlienc --libs`
LIBBROTLIENC_VERSION=`$PKG_CONFIG libbrotlienc --modversion`
AC_MSG_RESULT(from pkgconfig: version $LIBBROTLIENC_VERSION found)
else
AC_MSG_ERROR(system libbrotlienc must be upgraded to version >= $BROTLI_MIN_VERSION)
fi
else
AC_MSG_ERROR(system libbrotlienc not found)
fi
PHP_EVAL_INCLINE($LIBBROTLIENC_CFLAGS)
PHP_EVAL_LIBLINE($LIBBROTLIENC_LIBS, BROTLI_SHARED_LIBADD)
AC_MSG_CHECKING(for libbrotlidec)
if test -x "$PKG_CONFIG" && $PKG_CONFIG --exists libbrotlidec; then
if $PKG_CONFIG libbrotlidec --atleast-version $BROTLI_MIN_VERSION; then
LIBBROTLIDEC_CFLAGS=`$PKG_CONFIG libbrotlidec --cflags`
LIBBROTLIDEC_LIBS=`$PKG_CONFIG libbrotlidec --libs`
LIBBROTLIDEC_VERSION=`$PKG_CONFIG libbrotlidec --modversion`
AC_MSG_RESULT(from pkgconfig: version $LIBBROTLIDEC_VERSION found)
else
AC_MSG_ERROR(system libbrotlienc must be upgraded to version >= $BROTLI_MIN_VERSION)
fi
else
AC_MSG_ERROR(system libbrotlienc not found)
fi
PHP_EVAL_INCLINE($LIBBROTLIDEC_CFLAGS)
PHP_EVAL_LIBLINE($LIBBROTLIDEC_LIBS, BROTLI_SHARED_LIBADD)
AC_MSG_CHECKING(for brotli dictionary)
if $PKG_CONFIG libbrotlidec --atleast-version 1.1.0; then
AC_MSG_RESULT([enable])
AC_DEFINE(USE_BROTLI_DICTIONARY, 1, [use dictionary support])
else
AC_MSG_RESULT([disable])
fi
else
AC_MSG_CHECKING(for brotli)
AC_MSG_RESULT(use bundled copy)
BROTLI_COMMON_SOURCES="
brotli/c/common/constants.c
brotli/c/common/context.c
brotli/c/common/dictionary.c
brotli/c/common/platform.c
brotli/c/common/shared_dictionary.c
brotli/c/common/transform.c
"
BROTLI_ENC_SOURCES="
brotli/c/enc/backward_references.c
brotli/c/enc/backward_references_hq.c
brotli/c/enc/bit_cost.c
brotli/c/enc/block_splitter.c
brotli/c/enc/brotli_bit_stream.c
brotli/c/enc/cluster.c
brotli/c/enc/command.c
brotli/c/enc/compound_dictionary.c
brotli/c/enc/compress_fragment.c
brotli/c/enc/compress_fragment_two_pass.c
brotli/c/enc/dictionary_hash.c
brotli/c/enc/encode.c
brotli/c/enc/encoder_dict.c
brotli/c/enc/entropy_encode.c
brotli/c/enc/fast_log.c
brotli/c/enc/histogram.c
brotli/c/enc/literal_cost.c
brotli/c/enc/memory.c
brotli/c/enc/metablock.c
brotli/c/enc/static_dict.c
brotli/c/enc/static_dict_lut.c
brotli/c/enc/static_init.c
brotli/c/enc/utf8_util.c
"
BROTLI_DEC_SOURCES="
brotli/c/dec/bit_reader.c
brotli/c/dec/decode.c
brotli/c/dec/huffman.c
brotli/c/dec/prefix.c
brotli/c/dec/state.c
brotli/c/dec/static_init.c
"
AC_DEFINE(USE_BROTLI_BUNDLED, 1, [use bundled])
AC_DEFINE(USE_BROTLI_DICTIONARY, 1, [use dictionary support])
fi
PHP_SUBST(BROTLI_SHARED_LIBADD)
PHP_NEW_EXTENSION(brotli, brotli.c $BROTLI_COMMON_SOURCES $BROTLI_ENC_SOURCES $BROTLI_DEC_SOURCES, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
if test "$PHP_LIBBROTLI" = "no"; then
PHP_ADD_INCLUDE([$ext_srcdir/brotli/c/include])
PHP_ADD_BUILD_DIR($ext_builddir/brotli/c/common)
PHP_ADD_BUILD_DIR($ext_builddir/brotli/c/dec)
PHP_ADD_BUILD_DIR($ext_builddir/brotli/c/enc)
fi
AC_MSG_CHECKING([for APCu includes])
if test -f "$phpincludedir/ext/apcu/apc_serializer.h"; then
apc_inc_path="$phpincludedir"
AC_MSG_RESULT([APCu in $apc_inc_path])
AC_DEFINE(HAVE_APCU_SUPPORT, 1, [Whether to enable APCu support])
else
AC_MSG_RESULT([not found])
fi
fi