File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / pdo_odbc / config.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:47:59 2012 UTC (12 years, 5 months ago) by misho
Branches: php, MAIN
CVS tags: v5_3_10, HEAD
php

    1: dnl $Id: config.m4,v 1.1.1.1 2012/02/21 23:47:59 misho Exp $
    2: dnl config.m4 for extension pdo_odbc
    3: dnl vim:et:sw=2:ts=2:
    4: 
    5: define([PDO_ODBC_HELP_TEXT],[[
    6:                             include and lib dirs are looked for under 'dir'.
    7:                             
    8:                             'flavour' can be one of:  ibm-db2, iODBC, unixODBC, generic
    9:                             If ',dir' part is omitted, default for the flavour 
   10:                             you have selected will used. e.g.:
   11:                             
   12:                               --with-pdo-odbc=unixODBC
   13:                               
   14:                             will check for unixODBC under /usr/local. You may attempt 
   15:                             to use an otherwise unsupported driver using the \"generic\" 
   16:                             flavour.  The syntax for generic ODBC support is:
   17:                             
   18:                               --with-pdo-odbc=generic,dir,libname,ldflags,cflags
   19: 
   20:                             When build as shared the extension filename is always pdo_odbc.so]])
   21: 
   22: PHP_ARG_WITH(pdo-odbc, for ODBC v3 support for PDO,
   23: [  --with-pdo-odbc=flavour,dir
   24:                             PDO: Support for 'flavour' ODBC driver.]PDO_ODBC_HELP_TEXT)
   25: 
   26: 
   27: AC_DEFUN([PDO_ODBC_CHECK_HEADER],[
   28:   AC_MSG_CHECKING([for $1 in $PDO_ODBC_INCDIR])
   29:   if test -f "$PDO_ODBC_INCDIR/$1"; then
   30:     php_pdo_have_header=yes
   31:     PHP_DEF_HAVE(translit($1,.,_))
   32:     AC_MSG_RESULT(yes)
   33:   else
   34:     AC_MSG_RESULT(no)
   35:   fi
   36: ])
   37:                                   
   38: if test "$PHP_PDO_ODBC" != "no"; then
   39: 
   40:   if test "$PHP_PDO" = "no" && test "$ext_shared" = "no"; then
   41:     AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.])
   42:   fi
   43: 
   44:   ifdef([PHP_CHECK_PDO_INCLUDES],
   45:   [
   46:     PHP_CHECK_PDO_INCLUDES
   47:   ],[
   48:     AC_MSG_CHECKING([for PDO includes])
   49:     if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
   50:       pdo_inc_path=$abs_srcdir/ext
   51:     elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
   52:       pdo_inc_path=$abs_srcdir/ext
   53:     elif test -f $prefix/include/php/ext/pdo/php_pdo_driver.h; then
   54:       pdo_inc_path=$prefix/include/php/ext
   55:     else
   56:       AC_MSG_ERROR([Cannot find php_pdo_driver.h.])
   57:     fi
   58:     AC_MSG_RESULT($pdo_inc_path)
   59:   ])
   60: 
   61:   AC_MSG_CHECKING([for selected PDO ODBC flavour])
   62: 
   63:   pdo_odbc_flavour="`echo $PHP_PDO_ODBC | cut -d, -f1`"
   64:   pdo_odbc_dir="`echo $PHP_PDO_ODBC | cut -d, -f2`"
   65: 
   66:   if test "$pdo_odbc_dir" = "$PHP_PDO_ODBC" ; then
   67:     pdo_odbc_dir=
   68:   fi
   69: 
   70:   case $pdo_odbc_flavour in
   71:     ibm-db2)
   72:         pdo_odbc_def_libdir=/home/db2inst1/sqllib/lib
   73:         pdo_odbc_def_incdir=/home/db2inst1/sqllib/include
   74:         pdo_odbc_def_lib=db2
   75:         ;;
   76: 
   77:     iODBC|iodbc)
   78:         pdo_odbc_def_libdir=/usr/local/$PHP_LIBDIR
   79:         pdo_odbc_def_incdir=/usr/local/include
   80:         pdo_odbc_def_lib=iodbc
   81:         ;;
   82: 
   83:     unixODBC|unixodbc)
   84:         pdo_odbc_def_libdir=/usr/local/$PHP_LIBDIR
   85:         pdo_odbc_def_incdir=/usr/local/include
   86:         pdo_odbc_def_lib=odbc
   87:         ;;
   88: 
   89:     ODBCRouter|odbcrouter)
   90:         pdo_odbc_def_libdir=/usr/$PHP_LIBDIR
   91:         pdo_odbc_def_incdir=/usr/include
   92:         pdo_odbc_def_lib=odbcsdk
   93:         ;;
   94: 
   95:     generic)
   96:         pdo_odbc_def_lib="`echo $PHP_PDO_ODBC | cut -d, -f3`"
   97:         pdo_odbc_def_ldflags="`echo $PHP_PDO_ODBC | cut -d, -f4`"
   98:         pdo_odbc_def_cflags="`echo $PHP_PDO_ODBC | cut -d, -f5`"
   99:         pdo_odbc_flavour="generic-$pdo_odbc_def_lib"
  100:         ;;
  101: 
  102:       *)
  103:         AC_MSG_ERROR([Unknown ODBC flavour $pdo_odbc_flavour]PDO_ODBC_HELP_TEXT)
  104:         ;;
  105:   esac
  106: 
  107:   if test -n "$pdo_odbc_dir"; then
  108:     PDO_ODBC_INCDIR="$pdo_odbc_dir/include"
  109:     PDO_ODBC_LIBDIR="$pdo_odbc_dir/$PHP_LIBDIR"
  110:   else
  111:     PDO_ODBC_INCDIR="$pdo_odbc_def_incdir"
  112:     PDO_ODBC_LIBDIR="$pdo_odbc_def_libdir"
  113:   fi
  114:   
  115:   AC_MSG_RESULT([$pdo_odbc_flavour
  116:           libs       $PDO_ODBC_LIBDIR,
  117:           headers    $PDO_ODBC_INCDIR])
  118: 
  119:   if test ! -d "$PDO_ODBC_LIBDIR" ; then
  120:     AC_MSG_WARN([library dir $PDO_ODBC_LIBDIR does not exist])
  121:   fi
  122: 
  123:   PDO_ODBC_CHECK_HEADER(odbc.h)
  124:   PDO_ODBC_CHECK_HEADER(odbcsdk.h)
  125:   PDO_ODBC_CHECK_HEADER(iodbc.h)
  126:   PDO_ODBC_CHECK_HEADER(sqlunix.h)
  127:   PDO_ODBC_CHECK_HEADER(sqltypes.h)
  128:   PDO_ODBC_CHECK_HEADER(sqlucode.h)
  129:   PDO_ODBC_CHECK_HEADER(sql.h)
  130:   PDO_ODBC_CHECK_HEADER(isql.h)
  131:   PDO_ODBC_CHECK_HEADER(sqlext.h)
  132:   PDO_ODBC_CHECK_HEADER(isqlext.h)
  133:   PDO_ODBC_CHECK_HEADER(udbcext.h)
  134:   PDO_ODBC_CHECK_HEADER(sqlcli1.h)
  135:   PDO_ODBC_CHECK_HEADER(LibraryManager.h)
  136:   PDO_ODBC_CHECK_HEADER(cli0core.h)
  137:   PDO_ODBC_CHECK_HEADER(cli0ext.h)
  138:   PDO_ODBC_CHECK_HEADER(cli0cli.h)
  139:   PDO_ODBC_CHECK_HEADER(cli0defs.h)
  140:   PDO_ODBC_CHECK_HEADER(cli0env.h)
  141: 
  142:   if test "$php_pdo_have_header" != "yes"; then
  143:     AC_MSG_ERROR([Cannot find header file(s) for pdo_odbc])
  144:   fi
  145: 
  146:   PDO_ODBC_INCLUDE="$pdo_odbc_def_cflags -I$PDO_ODBC_INCDIR -DPDO_ODBC_TYPE=\\\"$pdo_odbc_flavour\\\""
  147:   PDO_ODBC_LDFLAGS="$pdo_odbc_def_ldflags -L$PDO_ODBC_LIBDIR -l$pdo_odbc_def_lib"
  148: 
  149:   PHP_EVAL_LIBLINE([$PDO_ODBC_LDFLAGS], [PDO_ODBC_SHARED_LIBADD])
  150: 
  151:   dnl Check first for an ODBC 1.0 function to assert that the libraries work
  152:   PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLBindCol,
  153:   [
  154:     dnl And now check for an ODBC 3.0 function to assert that they're
  155:     dnl *good* libraries.
  156:     PHP_CHECK_LIBRARY($pdo_odbc_def_lib, SQLAllocHandle,
  157:     [], [
  158:       AC_MSG_ERROR([
  159: Your ODBC library does not appear to be ODBC 3 compatible.
  160: You should consider using iODBC or unixODBC instead, and loading your
  161: libraries as a driver in that environment; it will emulate the
  162: functions required for PDO support.
  163: ])], $PDO_ODBC_LDFLAGS)
  164:   ],[
  165:     AC_MSG_ERROR([Your ODBC library does not exist or there was an error. Check config.log for more information])
  166:   ], $PDO_ODBC_LDFLAGS)
  167: 
  168:   PHP_NEW_EXTENSION(pdo_odbc, pdo_odbc.c odbc_driver.c odbc_stmt.c, $ext_shared,,-I$pdo_inc_path $PDO_ODBC_INCLUDE)
  169:   PHP_SUBST(PDO_ODBC_SHARED_LIBADD)
  170:   ifdef([PHP_ADD_EXTENSION_DEP],
  171:   [
  172:     PHP_ADD_EXTENSION_DEP(pdo_odbc, pdo)
  173:   ])
  174: fi

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>