@@ -2,16 +2,31 @@ dnl $Id$
2
2
dnl config.m4 for extension pdo_oci
3
3
dnl vim:et:sw=2:ts=2:
4
4
5
- SUPPORTED_LIB_VERS="9.0 10.1 11.1 12.1" # The lib vers are not bumped when the DB version is bumped
5
+ if test -z "$SED"; then
6
+ PHP_PDO_OCI_SED="sed";
7
+ else
8
+ PHP_PDO_OCI_SED="$SED";
9
+ fi
10
+
11
+ PHP_PDO_OCI_TAIL1=`echo a | tail -n1 2>/dev/null`
12
+ if test "$PHP_PDO_OCI_TAIL1" = "a"; then
13
+ PHP_PDO_OCI_TAIL1="tail -n1"
14
+ else
15
+ PHP_PDO_OCI_TAIL1="tail -1"
16
+ fi
17
+
6
18
AC_DEFUN ( [ AC_PDO_OCI_VERSION] ,[
7
19
AC_MSG_CHECKING ( [ Oracle version] )
8
- for OCI_VER in $SUPPORTED_LIB_VERS; do
9
- if test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.$OCI_VER; then
10
- PDO_OCI_VERSION="$OCI_VER"
11
- fi
12
- done
13
- if test -z "$PDO_OCI_VERSION"; then
14
- AC_MSG_ERROR ( [ Oracle required OCI8 libraries not found under $PDO_OCI_DIR] )
20
+ PDO_OCI_LCS_BASE=$PDO_OCI_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME
21
+ PDO_OCI_LCS=`ls $PDO_OCI_LCS_BASE.*.1 2> /dev/null | $PHP_PDO_OCI_TAIL1` # Oracle 10g, 11g, 12c etc
22
+ if test -f "$PDO_OCI_LCS"; then
23
+ dnl Oracle 10g, 11g 12c etc. The x.2 version libraries are named x.1 for drop in compatibility
24
+ PDO_OCI_VERSION=`echo $PDO_OCI_LCS | $PHP_PDO_OCI_SED -e 's/.*\.\(.*\)\.1$/\1.1/'`
25
+ elif test -f $PDO_OCI_LCS_BASE.9.0; then
26
+ dnl There is no case for Oracle 9.2. Oracle 9.2 libraries have a 9.0 suffix for drop-in compatibility with Oracle 9.0
27
+ PDO_OCI_VERSION=9.0
28
+ else
29
+ AC_MSG_ERROR ( Oracle libclntsh.$SHLIB_SUFFIX_NAME client library not found or its version is lower than 9 )
15
30
fi
16
31
AC_MSG_RESULT ( $PDO_OCI_VERSION )
17
32
] )
@@ -147,12 +162,11 @@ You need to tell me where to find your Oracle Instant Client SDK, or set ORACLE_
147
162
fi
148
163
149
164
case $PDO_OCI_VERSION in
150
- 9.0|10.1|10.2|11.1|11.2|12 .1)
151
- PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD )
165
+ 7.3|8.0|8 .1)
166
+ AC_MSG_ERROR ( Unsupported Oracle version $PDO_OCI_VERSION )
152
167
;;
153
-
154
168
*)
155
- AC_MSG_ERROR ( Unsupported Oracle version $PDO_OCI_VERSION )
169
+ PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD )
156
170
;;
157
171
esac
158
172
0 commit comments