@@ -8,7 +8,7 @@ if test "$PHP_V8" != "no"; then
8
8
SEARCH_PATH="/usr/local /usr"
9
9
SEARCH_FOR="include/v8.h"
10
10
11
- V8_MIN_API_VERSION_STR=5.7.514
11
+ V8_MIN_API_VERSION_STR=5.8.168
12
12
13
13
DESIRED_V8_VERSION=`echo "${V8_MIN_API_VERSION_STR}" | $AWK 'BEGIN { FS = "."; } { printf "%s.%s", [ $] 1, [ $] 2;}'`
14
14
@@ -18,53 +18,39 @@ if test "$PHP_V8" != "no"; then
18
18
SEARCH_PATH="${PRIORITY_SEARCH_PATH} /usr/local /usr"
19
19
20
20
if test -r $PHP_V8/$SEARCH_FOR; then
21
- case $host_os in
22
- darwin* )
23
- # MacOS does not support --rpath
24
- ;;
25
- * )
26
- LDFLAGS="$LDFLAGS -Wl,--rpath=$PHP_V8/$PHP_LIBDIR"
27
- ;;
28
- esac
29
- V8_LIB_DIR=$PHP_V8/$PHP_LIBDIR
30
- V8_INCLUDE_DIR=$PHP_V8/include
21
+ V8_ROOT_DIR=$PHP_V8
31
22
else
32
23
AC_MSG_CHECKING ( [ for V8 files in default path] )
33
24
for i in $SEARCH_PATH ; do
34
25
if test -r $i/$SEARCH_FOR; then
35
26
AC_MSG_RESULT ( found in $i )
36
- V8_LIB_DIR =$i/$PHP_LIBDIR
37
- V8_INCLUDE_DIR=$i/include
27
+ V8_ROOT_DIR =$i
28
+ break
38
29
fi
39
30
done
40
31
fi
41
32
42
- if test -z "$V8_LIB_DIR "; then
33
+ if test -z "$V8_ROOT_DIR "; then
43
34
AC_MSG_RESULT ( [ not found] )
44
35
AC_MSG_ERROR ( [ Please reinstall the v8 distribution or provide valid path to it] )
45
36
fi
46
37
47
- AC_DEFINE_UNQUOTED ( [ PHP_V8_LIB_DIR] , [ "$V8_LIB_DIR/"] , [ Root directory with libraries (and icu data file)] )
38
+ V8_LIB_DIR=$V8_ROOT_DIR/$PHP_LIBDIR
39
+ V8_INCLUDE_DIR=$V8_ROOT_DIR/include
48
40
49
- PHP_ADD_INCLUDE($V8_INCLUDE_DIR)
50
- PHP_ADD_LIBRARY_WITH_PATH(v8, $V8_LIB_DIR, V8_SHARED_LIBADD)
51
- PHP_SUBST(V8_SHARED_LIBADD)
52
- PHP_REQUIRE_CXX()
41
+ AC_MSG_CHECKING ( [ for ICU data file icudtl.dat] )
53
42
54
- AC_CACHE_CHECK ( for C standard version , ac_cv_v8_cstd , [
55
- ac_cv_v8_cstd="c++11"
56
- old_CPPFLAGS=$CPPFLAGS
57
- AC_LANG_PUSH ( [ C++] )
58
- CPPFLAGS="-std="$ac_cv_v8_cstd
59
- AC_TRY_RUN ( [ int main() { return 0; }] ,[ ] ,[ ac_cv_v8_cstd="c++0x"] ,[ ] )
60
- AC_LANG_POP ( [ C++] )
61
- CPPFLAGS=$old_CPPFLAGS
62
- ] ) ;
43
+ if test -r "$V8_LIB_DIR/icudtl.dat"; then
44
+ PHP_V8_ICU_DATA_DIR="$V8_LIB_DIR/" # trailing slash is required
45
+ AC_MSG_RESULT ( found in $PHP_V8_ICU_DATA_DIR )
46
+ fi
63
47
48
+ if test -z "PHP_V8_ICU_DATA_DIR"; then
49
+ AC_MSG_RESULT ( [ not found] )
50
+ AC_MSG_ERROR ( [ ICU data file icudtl.dat not found] )
51
+ fi
64
52
65
- old_LIBS=$LIBS
66
- old_LDFLAGS=$LDFLAGS
67
- old_CPPFLAGS=$CPPFLAGS
53
+ AC_DEFINE_UNQUOTED ( [ PHP_V8_ICU_DATA_DIR] , [ "$PHP_V8_ICU_DATA_DIR"] , [ ICU data path (trailing slash is required)] )
68
54
69
55
case $host_os in
70
56
darwin* )
@@ -76,35 +62,24 @@ if test "$PHP_V8" != "no"; then
76
62
;;
77
63
esac
78
64
79
- PHP_ADD_INCLUDE($V8_DIR)
65
+ AC_CACHE_CHECK ( for V8 version , ac_cv_v8_version , [
66
+ if test -z "$V8_INCLUDE_DIR/v8-version.h"; then
67
+ AC_MSG_RESULT ( [ not found] )
68
+ AC_MSG_ERROR ( [ Please reinstall the v8 distribution or provide valid path to it] )
69
+ fi
80
70
81
- LDFLAGS="$LDFLAGS -lv8_libbase -lv8_libplatform"
82
- LIBS="-lv8 -lv8_libbase -lv8_libplatform"
83
- CPPFLAGS="-I $V8_INCLUDE_DIR -std=$ac_cv_v8_cstd"
84
- AC_LANG_SAVE
85
- AC_LANG_CPLUSPLUS
71
+ major=`cat $V8_INCLUDE_DIR/v8-version.h | grep V8_MAJOR_VERSION | awk '{print $3 }'`
72
+ minor=`cat $V8_INCLUDE_DIR/v8-version.h | grep V8_MINOR_VERSION | awk '{print $3 }'`
73
+ build=`cat $V8_INCLUDE_DIR/v8-version.h | grep V8_BUILD_NUMBER | awk '{print $3 }'`
74
+ patch=`cat $V8_INCLUDE_DIR/v8-version.h | grep V8_PATCH_LEVEL | awk '{print $3 }'`
75
+ candidate=`cat $V8_INCLUDE_DIR/v8-version.h | grep V8_IS_CANDIDATE_VERSION | awk '{print $3 }'`
86
76
77
+ version="$major.$minor.$build"
87
78
88
- # NOTE: it is possible to get version string from headers with simple regexp match
89
- AC_CACHE_CHECK ( for V8 version , ac_cv_v8_version , [
90
- AC_TRY_RUN ( [
91
- #include <v8.h>
92
- #include <iostream>
93
- #include <fstream>
94
- using namespace std;
95
-
96
- int main ()
97
- {
98
- ofstream testfile ("conftestval");
99
- if (testfile.is_open()) {
100
- testfile << v8::V8::GetVersion();
101
- testfile << "\n";
102
- testfile.close();
103
- return 0;
104
- }
105
- return 1;
106
- }
107
- ] , [ ac_cv_v8_version=`cat ./conftestval|awk '{print $1 }'`] , [ ac_cv_v8_version=NONE] , [ ac_cv_v8_version=NONE] )
79
+ if test $patch -gt 0; then version="$version.$patch"; fi
80
+ if test $candidate -gt 0; then version="$version (candidate)"; fi
81
+
82
+ ac_cv_v8_version=$version
108
83
] )
109
84
110
85
V8_MIN_API_VERSION_NUM=`echo "${V8_MIN_API_VERSION_STR}" | $AWK 'BEGIN { FS = "."; } { printf "%d", [ $] 1 * 1000000 + [ $] 2 * 1000 + [ $] 3;}'`
@@ -121,23 +96,30 @@ if test "$PHP_V8" != "no"; then
121
96
AC_MSG_ERROR ( [ could not determine libv8 version] )
122
97
fi
123
98
99
+ PHP_ADD_INCLUDE($V8_DIR)
100
+ PHP_ADD_INCLUDE($V8_INCLUDE_DIR)
101
+
102
+ PHP_ADD_LIBRARY_WITH_PATH(v8, $V8_LIB_DIR, V8_SHARED_LIBADD)
103
+ PHP_ADD_LIBRARY_WITH_PATH(v8_libbase, $V8_LIB_DIR, V8_SHARED_LIBADD)
104
+ PHP_ADD_LIBRARY_WITH_PATH(v8_libplatform, $V8_LIB_DIR, V8_SHARED_LIBADD)
105
+
106
+ PHP_SUBST(V8_SHARED_LIBADD)
107
+ PHP_REQUIRE_CXX()
108
+
109
+ CPPFLAGS="$CPPFLAGS -std=c++11"
110
+
124
111
# On OS X clang reports warnings in zeng_strings.h, like
125
112
# php/Zend/zend_string.h:326:2: warning: 'register' storage class specifier is deprecated [-Wdeprecated-register]
126
113
# also
127
114
# php/Zend/zend_operators.h:128:18: warning: 'finite' is deprecated: first deprecated in macOS 10.9 [-Wdeprecated-declarations]
128
115
# but as we want to track also deprecated methods from v8 we won't ignore -Wdeprecated-declarations warnings
129
116
# We want to make building log cleaner, so let's suppress only -Wdeprecated-register warning
130
- PHP_V8_COMPILER_OPTIONS=" -Wno-deprecated-register"
131
- # PHP_V8_COMPILER_OPTIONS="-Wno-deprecated-register -Wno-deprecated-declarations"
117
+ CPPFLAGS="$CPPFLAGS -Wno-deprecated-register -Wno-unicode "
118
+ # CPPFLAGS="$CPPFLAGS -Wno-deprecated-declarations"
132
119
133
120
AC_DEFINE ( [ V8_DEPRECATION_WARNINGS] , [ 1] , [ Enable compiler warnings when using V8_DEPRECATED apis.] )
134
121
AC_DEFINE ( [ V8_IMMINENT_DEPRECATION_WARNINGS] , [ 1] , [ Enable compiler warnings to make it easier to see what v8 apis will be deprecated (V8_DEPRECATED) soon.] )
135
122
136
- AC_LANG_RESTORE
137
- LIBS=$old_LIBS
138
- # LDFLAGS=$old_LDFLAGS # we have to links some libraries
139
- CPPFLAGS=$old_CPPFLAGS
140
-
141
123
if test -z "$TRAVIS" ; then
142
124
type git &>/dev/null
143
125
@@ -185,6 +167,11 @@ if test "$PHP_V8" != "no"; then
185
167
src/php_v8_object_template.cc \
186
168
src/php_v8_function_template.cc \
187
169
src/php_v8_script.cc \
170
+ src/php_v8_unbound_script.cc \
171
+ src/php_v8_cached_data.cc \
172
+ src/php_v8_compile_options.cc \
173
+ src/php_v8_script_compiler.cc \
174
+ src/php_v8_source.cc \
188
175
src/php_v8_data.cc \
189
176
src/php_v8_value.cc \
190
177
src/php_v8_primitive.cc \
@@ -220,7 +207,7 @@ if test "$PHP_V8" != "no"; then
220
207
src/php_v8_named_property_handler_configuration.cc \
221
208
src/php_v8_indexed_property_handler_configuration.cc \
222
209
src/php_v8_access_type.cc \
223
- ] , $ext_shared, , "$PHP_V8_COMPILER_OPTIONS -std="$ac_cv_v8_cstd -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
210
+ ] , $ext_shared, , -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
224
211
225
212
PHP_ADD_BUILD_DIR($ext_builddir/src)
226
213
0 commit comments