]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/bacula-macros/db.m4
6ca82a0c4a1348dc55cd7c45f9f68ca4b4cafad4
[bacula/bacula] / bacula / autoconf / bacula-macros / db.m4
1 #
2 # Copyright (C) 2000-2016 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
4 #
5 AC_DEFUN([BA_CHECK_DBI_DB],
6 [
7 AC_MSG_CHECKING(for DBI support)
8 AC_ARG_WITH(dbi,
9 AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD base install directory, default is to search through a number of common places for the DBI files.]),
10 [
11   if test "$withval" != "no"; then
12      if test "$withval" = "yes"; then
13         if test -f /usr/local/include/dbi/dbi.h; then
14            DBI_INCDIR=/usr/local/dbi/include
15            if test -d /usr/local/lib64; then
16               DBI_LIBDIR=/usr/local/lib64
17            else
18               DBI_LIBDIR=/usr/local/lib
19            fi
20            DBI_BINDIR=/usr/local/bin
21         elif test -f /usr/include/dbi/dbi.h; then
22            DBI_INCDIR=/usr/include
23            if test -d /usr/lib64; then
24               DBI_LIBDIR=/usr/lib64
25            else
26               DBI_LIBDIR=/usr/lib
27            fi
28            DBI_BINDIR=/usr/bin
29         elif test -f $prefix/include/dbi/dbi.h; then
30            DBI_INCDIR=$prefix/include
31            if test -d $prefix/lib64; then
32               DBI_LIBDIR=$prefix/lib64
33            else
34               DBI_LIBDIR=$prefix/lib
35            fi
36            DBI_BINDIR=$prefix/bin
37         else
38            AC_MSG_RESULT(no)
39            AC_MSG_ERROR(Unable to find dbi.h in standard locations)
40         fi
41         if test -d /usr/local/lib/dbd; then
42            DRIVERDIR=/usr/local/lib/dbd
43            if test -d /usr/local/lib64/dbd; then
44               DRIVERDIR=/usr/local/lib64/dbd
45            else
46               DRIVERDIR=/usr/local/lib/dbd
47            fi
48         elif test -d /usr/lib/dbd; then
49            DRIVERDIR=/usr/lib/dbd
50            if test -d /usr/lib64/dbd; then
51               DRIVERDIR=/usr/lib64/dbd
52            else
53               DRIVERDIR=/usr/lib/dbd
54            fi
55         elif test -d $prefix/lib/dbd; then
56            if test -d $prefix/lib64/dbd; then
57               DRIVERDIR=$prefix/lib64/dbd
58            else
59               DRIVERDIR=$prefix/lib/dbd
60            fi
61         elif test -d /usr/local/lib64/dbd; then
62            DRIVERDIR=/usr/local/lib64/dbd
63         elif test -d /usr/lib64/dbd; then
64            DRIVERDIR=/usr/lib64/dbd
65         elif test -d $prefix/lib64/dbd; then
66            DRIVERDIR=$prefix/lib64/dbd
67         else
68            AC_MSG_RESULT(no)
69            AC_MSG_ERROR(Unable to find DBD drivers in standard locations)
70         fi
71      else
72         if test -f $withval/dbi.h; then
73            DBI_INCDIR=$withval
74            DBI_LIBDIR=$withval
75            DBI_BINDIR=$withval
76         elif test -f $withval/include/dbi/dbi.h; then
77            DBI_INCDIR=$withval/include
78            if test -d $withval/lib64; then
79               DBI_LIBDIR=$withval/lib64
80            else
81               DBI_LIBDIR=$withval/lib
82            fi
83            DBI_BINDIR=$withval/bin
84         else
85            AC_MSG_RESULT(no)
86            AC_MSG_ERROR(Invalid DBI directory $withval - unable to find dbi.h under $withval)
87         fi
88         if test -d $withval/dbd; then
89            DRIVERDIR=$withval/dbd
90         elif test -d $withval/lib/; then
91            if test -d $withval/lib64/dbd; then
92               DRIVERDIR=$withval/lib64/dbd
93            else
94               DRIVERDIR=$withval/lib/dbd
95            fi
96         elif test -d $withval/lib64/dbd; then
97            DRIVERDIR=$withval/lib64/dbd
98         else
99            AC_MSG_RESULT(no)
100            AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
101         fi
102      fi
103      DBI_INCLUDE=-I$DBI_INCDIR
104      if test x$use_libtool != xno; then
105         DBI_LIBS="-R $DBI_LIBDIR -L$DBI_LIBDIR -ldbi"
106      else
107         DBI_LIBS="-L$DBI_LIBDIR -ldbi"
108      fi
109      DBI_LIB=$DBI_LIBDIR/libdbi.a
110      DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
111      DB_LIBS="${DB_LIBS} ${DBI_LIBS}"
112
113      AC_DEFINE(HAVE_DBI, 1, [Set if you have the DBI driver])
114      AC_MSG_RESULT(yes)
115
116      if test -z "${db_backends}"; then
117          db_backends="DBI"
118      else
119          db_backends="${db_backends} DBI"
120      fi
121      if test -z "${DB_BACKENDS}" ; then
122         DB_BACKENDS="dbi"
123      else
124         DB_BACKENDS="${DB_BACKENDS} dbi"
125      fi
126      uncomment_dbi=" "
127
128      dnl -------------------------------------------
129      dnl Push the DB_PROG onto the stack of supported database backends for DBI
130      dnl -------------------------------------------
131      DB_BACKENDS="${DB_BACKENDS} ${DB_PROG}"
132
133      dnl -------------------------------------------
134      dnl Check if dbi supports batch mode
135      dnl -------------------------------------------
136      if test "x$support_batch_insert" = "xyes"; then
137          if test $DB_PROG = postgresql; then
138              AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
139              AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
140              test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
141              pkg=$?
142              if test $pkg = 0; then
143                  AC_DEFINE(HAVE_DBI_BATCH_FILE_INSERT, 1, [Set if DBI DB batch insert code enabled])
144              fi
145          fi
146      fi
147   else
148      AC_MSG_RESULT(no)
149   fi
150 ],[
151   AC_MSG_RESULT(no)
152 ])
153
154 AC_SUBST(DBI_LIBS)
155 AC_SUBST(DBI_INCLUDE)
156 AC_SUBST(DBI_BINDIR)
157 AC_SUBST(DBI_DBD_DRIVERDIR)
158
159 ])
160
161 AC_DEFUN([BA_CHECK_DBI_DRIVER],
162 [
163 db_prog=no
164 AC_MSG_CHECKING(for DBI drivers support)
165 AC_ARG_WITH(dbi-driver,
166 AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVER is the one DBI driver like Mysql, Postgresql, others. Default is to not configure any driver.]),
167 [
168   if test "$withval" != "no"; then
169      case $withval in
170         "mysql")
171            db_prog="mysql"
172            if test -f /usr/local/mysql/bin/mysql; then
173               MYSQL_BINDIR=/usr/local/mysql/bin
174               if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
175                  -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
176                  MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
177               else
178                  MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
179               fi
180            elif test -f /usr/bin/mysql; then
181               MYSQL_BINDIR=/usr/bin
182               if test -f /usr/lib64/mysql/libmysqlclient_r.a \
183                   -o -f /usr/lib64/mysql/libmysqlclient_r.so; then
184                   MYSQL_LIBDIR=/usr/lib64/mysql
185               elif test -f /usr/lib/mysql/libmysqlclient_r.a \
186                   -o -f /usr/lib/mysql/libmysqlclient_r.so; then
187                   MYSQL_LIBDIR=/usr/lib/mysql
188               else
189                   MYSQL_LIBDIR=/usr/lib
190               fi
191            elif test -f /usr/local/bin/mysql; then
192               MYSQL_BINDIR=/usr/local/bin
193               if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
194                   -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
195                   MYSQL_LIBDIR=/usr/local/lib64/mysql
196               elif test -f /usr/local/lib/mysql/libmysqlclient_r.a \
197                   -o -f /usr/local/lib/mysql/libmysqlclient_r.so; then
198                   MYSQL_LIBDIR=/usr/local/lib/mysql
199               else
200                   MYSQL_LIBDIR=/usr/local/lib
201               fi
202            elif test -f $withval/bin/mysql; then
203               MYSQL_BINDIR=$withval/bin
204               if test -f $withval/lib64/mysql/libmysqlclient_r.a \
205                   -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
206                   MYSQL_LIBDIR=$withval/lib64/mysql
207               elif test -f $withval/lib64/libmysqlclient_r.a \
208                   -o -f $withval/lib64/libmysqlclient_r.so; then
209                   MYSQL_LIBDIR=$withval/lib64
210               elif test -f $withval/lib/libmysqlclient_r.a \
211                   -o -f $withval/lib/libmysqlclient_r.so; then
212                   MYSQL_LIBDIR=$withval/lib/
213               else
214                   MYSQL_LIBDIR=$withval/lib/mysql
215               fi
216            elif test -f $prefix/lib/mysql55/bin/mysql; then
217               MYSQL_BINDIR=$prefix/lib/mysql55/bin
218               if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \
219                   -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then
220                   MYSQL_LIBDIR=$prefix/lib/mysql55/mysql
221               fi
222            elif test -f $prefix/lib/mysql51/bin/mysql; then
223               MYSQL_BINDIR=$prefix/lib/mysql51/bin
224               if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \
225                   -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then
226                   MYSQL_LIBDIR=$prefix/lib/mysql51/mysql
227               fi
228            else
229               AC_MSG_RESULT(no)
230               AC_MSG_ERROR(Unable to find mysql in standard locations)
231            fi
232            if test -f $SQL_LIBDIR/libmysqlclient_r.so; then
233               DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.so
234            else
235               DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.a
236            fi
237         ;;
238         "postgresql")
239            db_prog="postgresql"
240            PG_CONFIG=`which pg_config 2>/dev/null`
241            if test -n "$PG_CONFIG"; then
242               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
243               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
244            elif test -f /usr/local/bin/psql; then
245               POSTGRESQL_BINDIR=/usr/local/bin
246               if test -d /usr/local/lib64; then
247                  POSTGRESQL_LIBDIR=/usr/local/lib64
248               else
249                  POSTGRESQL_LIBDIR=/usr/local/lib
250               fi
251            elif test -f /usr/bin/psql; then
252               POSTGRESQL_BINDIR=/usr/local/bin
253               if test -d /usr/lib64/postgresql; then
254                  POSTGRESQL_LIBDIR=/usr/lib64/postgresql
255               elif test -d /usr/lib/postgresql; then
256                  POSTGRESQL_LIBDIR=/usr/lib/postgresql
257               elif test -d /usr/lib64; then
258                  POSTGRESQL_LIBDIR=/usr/lib64
259               else
260                  POSTGRESQL_LIBDIR=/usr/lib
261               fi
262            elif test -f $withval/bin/psql; then
263               POSTGRESQL_BINDIR=$withval/bin
264               if test -d $withval/lib64; then
265                  POSTGRESQL_LIBDIR=$withval/lib64
266               else
267                  POSTGRESQL_LIBDIR=$withval/lib
268               fi
269            else
270               AC_MSG_RESULT(no)
271               AC_MSG_ERROR(Unable to find psql in standard locations)
272            fi
273            if test -f $POSTGRESQL_LIBDIR/libpq.so; then
274               DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.so
275            else
276               DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.a
277            fi
278         ;;
279         "sqlite3")
280            db_prog="sqlite3"
281            if test -f /usr/local/bin/sqlite3; then
282               SQLITE_BINDIR=/usr/local/bin
283               if test -d /usr/local/lib64; then
284                  SQLITE_LIBDIR=/usr/local/lib64
285               else
286                  SQLITE_LIBDIR=/usr/local/lib
287               fi
288            elif test -f /usr/bin/sqlite3; then
289               SQLITE_BINDIR=/usr/bin
290               if test -d /usr/lib64; then
291                  SQLITE_LIBDIR=/usr/lib64
292               else
293                  SQLITE_LIBDIR=/usr/lib
294               fi
295            elif test -f $withval/bin/sqlite3; then
296               SQLITE_BINDIR=$withval/bin
297               if test -d $withval/lib64; then
298                  SQLITE_LIBDIR=$withval/lib64
299               else
300                  SQLITE_LIBDIR=$withval/lib
301               fi
302            else
303               AC_MSG_RESULT(no)
304               AC_MSG_ERROR(Unable to find sqlite in standard locations)
305            fi
306            if test -f $SQLITE_LIBDIR/libsqlite3.so; then
307               DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.so
308            else
309               DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.a
310            fi
311         ;;
312         *)
313            AC_MSG_RESULT(no)
314            AC_MSG_ERROR(Unable to set DBI driver. $withval is not supported)
315         ;;
316      esac
317
318      AC_MSG_RESULT(yes)
319      DB_PROG=$db_prog
320   else
321      AC_MSG_RESULT(no)
322   fi
323 ],[
324   AC_MSG_RESULT(no)
325 ])
326
327 AC_SUBST(MYSQL_BINDIR)
328 AC_SUBST(POSTGRESQL_BINDIR)
329 AC_SUBST(SQLITE_BINDIR)
330 AC_SUBST(DB_PROG)
331 AC_SUBST(DB_PROG_LIB)
332
333 ])
334
335
336 AC_DEFUN([BA_CHECK_MYSQL_DB],
337 [
338 AC_MSG_CHECKING(for MySQL support)
339 AC_ARG_WITH(mysql,
340 AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
341 [
342   HAVE_LIBSR="no"
343   if test "$withval" != "no"; then
344      if test "$withval" = "yes"; then
345         MYSQL_CONFIG=`which mysql_config 2>/dev/null`
346         if test "x${MYSQL_CONFIG}" != x; then
347            MYSQL_BINDIR="${MYSQL_CONFIG%/*}"
348            ${MYSQL_CONFIG} --libs_r >/dev/null 2>&1
349            if test $? = 0; then
350               MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs_r`
351               MYSQL_INCDIR=`${MYSQL_CONFIG} --include`
352               HAVE_LIBSR="yes"
353            else
354               ${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1
355               if test $? = 0 ; then
356                  MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir`
357                  MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir`
358               fi
359            fi
360         fi
361         # if something wrong fall back to old method
362         if test "x${MYSQL_LIBDIR}" = x -o "x${MYSQL_INCDIR}" = x ; then
363            if test -f /usr/local/mysql/include/mysql/mysql.h; then
364               MYSQL_INCDIR=/usr/local/mysql/include/mysql
365               if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
366                       -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
367                  MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
368               else
369                  MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
370               fi
371               MYSQL_BINDIR=/usr/local/mysql/bin
372            elif test -f /usr/include/mysql/mysql.h; then
373               MYSQL_INCDIR=/usr/include/mysql
374               if test -f /usr/lib64/mysql/libmysqlclient_r.a \
375                       -o -f /usr/lib64/mysql/libmysqlclient_r.so; then
376                  MYSQL_LIBDIR=/usr/lib64/mysql
377               elif test -f /usr/lib64/libmysqlclient_r.a \
378                         -o -f /usr/lib64/libmysqlclient_r.so; then
379                  MYSQL_LIBDIR=/usr/lib64
380               elif test -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.a \
381                         -o -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so; then
382                  MYSQL_LIBDIR=/usr/lib/x86_64-linux-gnu
383               elif test -f /usr/lib/mysql/libmysqlclient_r.a \
384                         -o -f /usr/lib/mysql/libmysqlclient_r.so; then
385                  MYSQL_LIBDIR=/usr/lib/mysql
386               else
387                  MYSQL_LIBDIR=/usr/lib
388               fi
389               MYSQL_BINDIR=/usr/bin
390            elif test -f /usr/include/mysql.h; then
391               MYSQL_INCDIR=/usr/include
392               if test -f /usr/lib64/libmysqlclient_r.a \
393                       -o -f /usr/lib64/libmysqlclient_r.so; then
394                  MYSQL_LIBDIR=/usr/lib64
395               else
396                  MYSQL_LIBDIR=/usr/lib
397               fi
398               MYSQL_BINDIR=/usr/bin
399            elif test -f /usr/local/include/mysql/mysql.h; then
400               MYSQL_INCDIR=/usr/local/include/mysql
401               if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
402                       -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
403                  MYSQL_LIBDIR=/usr/local/lib64/mysql
404               else
405                  MYSQL_LIBDIR=/usr/local/lib/mysql
406               fi
407               MYSQL_BINDIR=/usr/local/bin
408            elif test -f /usr/local/include/mysql.h; then
409               MYSQL_INCDIR=/usr/local/include
410               if test -f /usr/local/lib64/libmysqlclient_r.a \
411                       -o -f /usr/local/lib64/libmysqlclient_r.so; then
412                  MYSQL_LIBDIR=/usr/local/lib64
413               else
414                  MYSQL_LIBDIR=/usr/local/lib
415               fi
416               MYSQL_BINDIR=/usr/local/bin
417            else
418               AC_MSG_RESULT(no)
419               AC_MSG_ERROR(Unable to find mysql.h in standard locations)
420            fi
421         fi
422      else
423         if test -f $withval/include/mysql/mysql.h; then
424            MYSQL_INCDIR=$withval/include/mysql
425            if test -f $withval/lib64/mysql/libmysqlclient_r.a \
426                 -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
427               MYSQL_LIBDIR=$withval/lib64/mysql
428            elif test -f $withval/lib64/libmysqlclient_r.a \
429                 -o -f $withval/lib64/libmysqlclient_r.so; then
430               MYSQL_LIBDIR=$withval/lib64
431            elif test -f $withval/lib/libmysqlclient_r.a \
432                 -o -f $withval/lib/libmysqlclient_r.so; then
433               MYSQL_LIBDIR=$withval/lib
434            else
435               MYSQL_LIBDIR=$withval/lib/mysql
436            fi
437            MYSQL_BINDIR=$withval/bin
438         elif test -f $withval/include/mysql.h; then
439            MYSQL_INCDIR=$withval/include
440            if test -f $withval/lib64/libmysqlclient_r.a \
441                 -o -f $withval/lib64/libmysqlclient_r.so; then
442               MYSQL_LIBDIR=$withval/lib64
443            else
444               MYSQL_LIBDIR=$withval/lib
445            fi
446            MYSQL_BINDIR=$withval/bin
447         elif test -f $withval/mysql.h; then
448            dnl MacPorts on OSX has a special MySQL Layout. See #2079
449            MYSQL_INCDIR=$withval
450            AC_MSG_NOTICE(Got with-mysql variable $MYSQL_INCDIR checking MySQL version)
451            case $MYSQL_INCDIR in
452               *mysql55*)
453                   AC_MSG_NOTICE(Assuming MacPorts MySQL 5.5 variant installed)
454                   dnl with-mysql given contains mysql55 - assuming OSX MacPorts MySQL55 variant
455                   if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \
456                        -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then
457                      AC_MSG_NOTICE(Found MySQL 5.5 library in $prefix/lib/mysql55/mysql)
458                      MYSQL_LIBDIR=$prefix/lib/mysql55/mysql
459                   fi
460                   MYSQL_BINDIR=$prefix/lib/mysql55/bin
461               ;;
462               *mysql51*)
463                   AC_MSG_NOTICE(Assuming MacPorts MySQL 5.1 variant installed)
464                   dnl with-mysql contains mysql51 - assuming OSX MacPorts MySQL51 variant
465                   if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \
466                        -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then
467                      AC_MSG_NOTICE(Found MySQL 5.1 library in $prefix/lib/mysql55/mysql)
468                      MYSQL_LIBDIR=$prefix/lib/mysql51/mysql
469                   fi
470                   MYSQL_BINDIR=$prefix/lib/mysql51/bin
471               ;;
472            esac
473            if test -z "${MYSQL_LIBDIR}" ; then
474               AC_MSG_RESULT(no)
475               AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries)
476            fi
477         else
478            AC_MSG_RESULT(no)
479            AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
480         fi
481      fi
482      if test "x${MYSQL_LIBDIR}" != x; then
483         MYSQL_INCLUDE=-I$MYSQL_INCDIR
484         if test "x$HAVE_LIBSR" = "xyes"; then
485            DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
486            MYSQL_LIBS="$MYSQL_LIBDIR"
487            MYSQL_INCLUDE="$MYSQL_INCDIR"
488            if test -z "${batch_insert_db_backends}"; then
489               batch_insert_db_backends="MySQL"
490            else
491               batch_insert_db_backends="${batch_insert_db_backends} MySQL"
492            fi
493         elif test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
494                -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
495            if test x$use_libtool != xno; then
496               MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz"
497            else
498               MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
499            fi
500            DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
501         fi
502         if test "x${MYSQL_LIBS}" = x; then
503            MYSQL_LIBS=$MYSQL_LIBDIR/libmysqlclient_r.a
504         fi
505
506         AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
507         AC_MSG_RESULT(yes)
508
509         if test -z "${db_backends}" ; then
510             db_backends="MySQL"
511         else
512             db_backends="${db_backends} MySQL"
513         fi
514         if test -z "${DB_BACKENDS}" ; then
515             DB_BACKENDS="mysql"
516         else
517             DB_BACKENDS="${DB_BACKENDS} mysql"
518         fi
519
520         dnl -------------------------------------------
521         dnl Check if mysql supports batch mode
522         dnl -------------------------------------------
523         if test "x$HAVE_LIBSR" = "xno"; then
524           if test "x$support_batch_insert" = "xyes"; then
525             dnl For mysql checking
526             saved_LDFLAGS="${LDFLAGS}"
527             LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
528             saved_LIBS="${LIBS}"
529             LIBS="${saved_LIBS} -lz"
530
531             AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
532             if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
533                 if test -z "${batch_insert_db_backends}"; then
534                     batch_insert_db_backends="MySQL"
535                 else
536                     batch_insert_db_backends="${batch_insert_db_backends} MySQL"
537                 fi
538             fi
539
540             dnl Revert after mysql checks
541             LDFLAGS="${saved_LDFLAGS}"
542             LIBS="${saved_LIBS}"
543           fi
544         fi
545      else
546         AC_MSG_RESULT(no)
547      fi
548   fi
549 ],[
550   AC_MSG_RESULT(no)
551 ])
552
553 AC_MSG_CHECKING(for MySQL embedded support)
554 AC_ARG_WITH(embedded-mysql,
555 AC_HELP_STRING([--with-embedded-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
556 [
557   if test "$withval" != "no"; then
558         if test "$withval" = "yes"; then
559                 if test -f /usr/local/mysql/include/mysql/mysql.h; then
560                         MYSQL_INCDIR=/usr/local/mysql/include/mysql
561                         if test -d /usr/local/mysql/lib64/mysql; then
562                                 MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
563                         else
564                                 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
565                         fi
566                         MYSQL_BINDIR=/usr/local/mysql/bin
567                 elif test -f /usr/include/mysql/mysql.h; then
568                         MYSQL_INCDIR=/usr/include/mysql
569                         if test -d /usr/lib64/mysql; then
570                                 MYSQL_LIBDIR=/usr/lib64/mysql
571                         else
572                                 MYSQL_LIBDIR=/usr/lib/mysql
573                         fi
574                         MYSQL_BINDIR=/usr/bin
575                 elif test -f /usr/include/mysql.h; then
576                         MYSQL_INCDIR=/usr/include
577                         if test -d /usr/lib64; then
578                                 MYSQL_LIBDIR=/usr/lib64
579                         else
580                                 MYSQL_LIBDIR=/usr/lib
581                         fi
582                         MYSQL_BINDIR=/usr/bin
583                 elif test -f /usr/local/include/mysql/mysql.h; then
584                         MYSQL_INCDIR=/usr/local/include/mysql
585                         if test -d /usr/local/lib64/mysql; then
586                                 MYSQL_LIBDIR=/usr/local/lib64/mysql
587                         else
588                                 MYSQL_LIBDIR=/usr/local/lib/mysql
589                         fi
590                         MYSQL_BINDIR=/usr/local/bin
591                 elif test -f /usr/local/include/mysql.h; then
592                         MYSQL_INCDIR=/usr/local/include
593                         if test -d /usr/local/lib64; then
594                                 MYSQL_LIBDIR=/usr/local/lib64
595                         else
596                                 MYSQL_LIBDIR=/usr/local/lib
597                         fi
598                         MYSQL_BINDIR=/usr/local/bin
599                 else
600                    AC_MSG_RESULT(no)
601                    AC_MSG_ERROR(Unable to find mysql.h in standard locations)
602                 fi
603         else
604                 if test -f $withval/include/mysql/mysql.h; then
605                         MYSQL_INCDIR=$withval/include/mysql
606                         if test -d $withval/lib64/mysql; then
607                                 MYSQL_LIBDIR=$withval/lib64/mysql
608                         else
609                                 MYSQL_LIBDIR=$withval/lib/mysql
610                         fi
611                         MYSQL_BINDIR=$withval/bin
612                 elif test -f $withval/include/mysql.h; then
613                         MYSQL_INCDIR=$withval/include
614                         if test -d $withval/lib64; then
615                                 MYSQL_LIBDIR=$withval/lib64
616                         else
617                                 MYSQL_LIBDIR=$withval/lib
618                         fi
619                         MYSQL_BINDIR=$withval/bin
620                 else
621                    AC_MSG_RESULT(no)
622                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
623                 fi
624         fi
625      MYSQL_INCLUDE=-I$MYSQL_INCDIR
626      if test x$use_libtool != xno; then
627         MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
628      else
629         MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
630      fi
631      MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
632      DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
633
634      AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
635      AC_DEFINE(HAVE_EMBEDDED_MYSQL, 1, [Set if you have an Embedded MySQL Database])
636      AC_MSG_RESULT(yes)
637
638      if test -z "${db_backends}"; then
639          db_backends="MySQL"
640      else
641          db_backends="${db_backends} MySQL"
642      fi
643      if test -z "${DB_BACKENDS}"; then
644          DB_BACKENDS="mysql"
645      else
646          DB_BACKENDS="${DB_BACKENDS} mysql"
647      fi
648
649      dnl -------------------------------------------
650      dnl Check if mysql supports batch mode
651      dnl -------------------------------------------
652      if test "x$support_batch_insert" = "xyes"; then
653          dnl For mysql checking
654          saved_LDFLAGS="${LDFLAGS}"
655          LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
656          saved_LIBS="${LIBS}"
657          LIBS="${saved_LIBS} -lz -lm -lcrypt"
658
659          AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
660          if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
661              if test -z "${batch_insert_db_backends}"; then
662                  batch_insert_db_backends="MySQL"
663              else
664                  batch_insert_db_backends="${batch_insert_db_backends} MySQL"
665              fi
666          fi
667
668          dnl Revert after mysql checks
669          LDFLAGS="${saved_LDFLAGS}"
670          LIBS="${saved_LIBS}"
671      fi
672   else
673      AC_MSG_RESULT(no)
674   fi
675 ],[
676   AC_MSG_RESULT(no)
677 ])
678
679 AC_SUBST(MYSQL_LIBS)
680 AC_SUBST(MYSQL_INCLUDE)
681 AC_SUBST(MYSQL_BINDIR)
682
683 ])
684
685 AC_DEFUN([BA_CHECK_INGRES_DB],
686 [
687 AC_MSG_CHECKING(for Ingres support)
688 AC_ARG_WITH(ingres,
689 AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the Ingres base install directory, default is to search through a number of common places for the Ingres files.]),
690 [
691   if test "$withval" != "no"; then
692      if test "$withval" = "yes"; then
693         if test -f ${II_SYSTEM}/files/eqdefc.h; then
694            INGRES_INCDIR=${II_SYSTEM}/files
695            INGRES_LIBDIR=${II_SYSTEM}/lib
696            INGRES_BINDIR=${II_SYSTEM}/bin
697         elif test -f ${II_SYSTEM}/ingres/files/eqdefc.h; then
698            INGRES_INCDIR=${II_SYSTEM}/ingres/files
699            INGRES_LIBDIR=${II_SYSTEM}/ingres/lib
700            INGRES_BINDIR=${II_SYSTEM}/ingres/bin
701         else
702            AC_MSG_RESULT(no)
703            AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
704         fi
705      else
706         if test -f $withval/files/eqdefc.h; then
707            INGRES_INCDIR=$withval/files
708            INGRES_LIBDIR=$withval/lib
709            INGRES_BINDIR=$withval/bin
710         else
711            AC_MSG_RESULT(no)
712            AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
713         fi
714      fi
715      INGRES_INCLUDE=-I$INGRES_INCDIR
716      if test x$use_libtool != xno; then
717         INGRES_LIBS="-R $INGRES_LIBDIR -L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
718      else
719         INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
720      fi
721      DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
722      AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
723      AC_MSG_RESULT(yes)
724
725      if test -z "${db_backends}"; then
726          db_backends="Ingres"
727      else
728          db_backends="${db_backends} Ingres"
729      fi
730      if test -z "${DB_BACKENDS}"; then
731          DB_BACKENDS="ingres"
732      else
733          DB_BACKENDS="${DB_BACKENDS} ingres"
734      fi
735   else
736      AC_MSG_RESULT(no)
737   fi
738 ],[
739   AC_MSG_RESULT(no)
740 ])
741
742 AC_SUBST(INGRES_LIBS)
743 AC_SUBST(INGRES_INCLUDE)
744 AC_SUBST(INGRES_BINDIR)
745 ])
746
747 AC_DEFUN([BA_CHECK_SQLITE3_DB],
748 [
749 AC_MSG_CHECKING(for SQLite3 support)
750 AC_ARG_WITH(sqlite3,
751 AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is the SQLite3 base install directory, default is to search through a number of common places for the SQLite3 files.]),
752 [
753   if test "$withval" != "no"; then
754      if test "$withval" = "yes"; then
755         if test -f /usr/local/include/sqlite3.h; then
756            SQLITE_INCDIR=/usr/local/include
757            if test -d /usr/local/lib64; then
758               SQLITE_LIBDIR=/usr/local/lib64
759            else
760               SQLITE_LIBDIR=/usr/local/lib
761            fi
762            SQLITE_BINDIR=/usr/local/bin
763         elif test -f /usr/include/sqlite3.h; then
764            SQLITE_INCDIR=/usr/include
765            if test -d /usr/lib64; then
766               SQLITE_LIBDIR=/usr/lib64
767            else
768               SQLITE_LIBDIR=/usr/lib
769            fi
770            SQLITE_BINDIR=/usr/bin
771         elif test -f $prefix/include/sqlite3.h; then
772            SQLITE_INCDIR=$prefix/include
773            if test -d $prefix/lib64; then
774               SQLITE_LIBDIR=$prefix/lib64
775            else
776               SQLITE_LIBDIR=$prefix/lib
777            fi
778            SQLITE_BINDIR=$prefix/bin
779         else
780            AC_MSG_RESULT(no)
781            AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
782         fi
783      else
784         if test -f $withval/sqlite3.h; then
785            SQLITE_INCDIR=$withval
786            SQLITE_LIBDIR=$withval
787            SQLITE_BINDIR=$withval
788         elif test -f $withval/include/sqlite3.h; then
789            SQLITE_INCDIR=$withval/include
790            if test -d $withval/lib64; then
791               SQLITE_LIBDIR=$withval/lib64
792            else
793               SQLITE_LIBDIR=$withval/lib
794            fi
795            SQLITE_BINDIR=$withval/bin
796         else
797            AC_MSG_RESULT(no)
798            AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
799         fi
800      fi
801      SQLITE_INCLUDE=-I$SQLITE_INCDIR
802      if test x$use_libtool != xno; then
803         SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
804      else
805         SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
806      fi
807      SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
808      DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
809
810      AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
811      AC_MSG_RESULT(yes)
812
813      if test -z "${db_backends}"; then
814          db_backends="SQLite3"
815      else
816          db_backends="${db_backends} SQLite3"
817      fi
818      if test -z "${DB_BACKENDS}"; then
819          DB_BACKENDS="sqlite3"
820      else
821          DB_BACKENDS="${DB_BACKENDS} sqlite3"
822      fi
823
824      dnl -------------------------------------------
825      dnl Check if sqlite supports batch mode
826      dnl -------------------------------------------
827      if test "x$support_batch_insert" = "xyes"; then
828          dnl For sqlite checking
829          saved_LDFLAGS="${LDFLAGS}"
830          LDFLAGS="${saved_LDFLAGS} -lpthread -L$SQLITE_LIBDIR"
831
832          AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
833          if test "x$ac_cv_lib_sqlite3_sqlite3_threadsafe" = "xyes"; then
834              if test -z "${batch_insert_db_backends}"; then
835                  batch_insert_db_backends="SQLite3"
836              else
837                  batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
838              fi
839          fi
840
841          dnl Revert after sqlite checks
842          LDFLAGS="${saved_LDFLAGS}"
843      fi
844   else
845      AC_MSG_RESULT(no)
846   fi
847 ],[
848   AC_MSG_RESULT(no)
849 ])
850 AC_SUBST(SQLITE_LIBS)
851 AC_SUBST(SQLITE_INCLUDE)
852 AC_SUBST(SQLITE_BINDIR)
853
854 ])
855
856
857 AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
858 [
859 AC_MSG_CHECKING(for PostgreSQL support)
860 AC_ARG_WITH(postgresql,
861 AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR is the PostgreSQL base install directory, @<:@default=/usr/local/pgsql@:>@]),
862 [
863   if test "$withval" != "no"; then
864       if test "$withval" = "yes"; then
865           PG_CONFIG=`which pg_config 2>/dev/null`
866           if test -n "$PG_CONFIG"; then
867               POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir`
868               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
869               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
870           elif test -f /usr/local/include/libpq-fe.h; then
871               POSTGRESQL_INCDIR=/usr/local/include
872               if test -d /usr/local/lib64; then
873                  POSTGRESQL_LIBDIR=/usr/local/lib64
874               else
875                  POSTGRESQL_LIBDIR=/usr/local/lib
876               fi
877               POSTGRESQL_BINDIR=/usr/local/bin
878           elif test -f /usr/include/libpq-fe.h; then
879               POSTGRESQL_INCDIR=/usr/include
880               if test -d /usr/lib64; then
881                  POSTGRESQL_LIBDIR=/usr/lib64
882               else
883                  POSTGRESQL_LIBDIR=/usr/lib
884               fi
885               POSTGRESQL_BINDIR=/usr/bin
886           elif test -f /usr/include/pgsql/libpq-fe.h; then
887               POSTGRESQL_INCDIR=/usr/include/pgsql
888               if test -d /usr/lib64/pgsql; then
889                  POSTGRESQL_LIBDIR=/usr/lib64/pgsql
890               else
891                  POSTGRESQL_LIBDIR=/usr/lib/pgsql
892               fi
893               POSTGRESQL_BINDIR=/usr/bin
894           elif test -f /usr/include/postgresql/libpq-fe.h; then
895               POSTGRESQL_INCDIR=/usr/include/postgresql
896               if test -d /usr/lib64/postgresql; then
897                  POSTGRESQL_LIBDIR=/usr/lib64/postgresql
898               else
899                  POSTGRESQL_LIBDIR=/usr/lib/postgresql
900               fi
901               POSTGRESQL_BINDIR=/usr/bin
902           else
903               AC_MSG_RESULT(no)
904               AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
905           fi
906       elif test -f $withval/include/libpq-fe.h; then
907           POSTGRESQL_INCDIR=$withval/include
908           POSTGRESQL_LIBDIR=$withval/lib
909           POSTGRESQL_BINDIR=$withval/bin
910       elif test -f $withval/include/postgresql/libpq-fe.h; then
911           POSTGRESQL_INCDIR=$withval/include/postgresql
912           if test -d $withval/lib64; then
913               POSTGRESQL_LIBDIR=$withval/lib64
914           else
915               POSTGRESQL_LIBDIR=$withval/lib
916           fi
917           POSTGRESQL_BINDIR=$withval/bin
918       else
919           AC_MSG_RESULT(no)
920           AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
921       fi
922      AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
923      AC_MSG_RESULT(yes)
924
925      POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
926      if test x$use_libtool != xno; then
927         POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
928      else
929         POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
930      fi
931      AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LIBS="$POSTGRESQL_LIBS -lcrypt"]))
932      POSTGRESQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
933      DB_LIBS="${DB_LIBS} ${POSTGRESQL_LIBS}"
934
935      if test -z "${db_backends}"; then
936          db_backends="PostgreSQL"
937      else
938          db_backends="${db_backends} PostgreSQL"
939      fi
940      if test -z "${DB_BACKENDS}"; then
941          DB_BACKENDS="postgresql"
942      else
943          DB_BACKENDS="${DB_BACKENDS} postgresql"
944      fi
945
946      dnl -------------------------------------------
947      dnl Check if postgresql supports batch mode
948      dnl -------------------------------------------
949      if test "x$support_batch_insert" = "xyes"; then
950          dnl For postgresql checking
951          saved_LDFLAGS="${LDFLAGS}"
952          LDFLAGS="${saved_LDFLAGS} -L$POSTGRESQL_LIBDIR"
953          saved_LIBS="${LIBS}"
954          if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
955             LIBS="${saved_LIBS} -lcrypt"
956          fi
957
958          AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
959          AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
960          if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then
961              if test $support_batch_insert = yes ; then
962                  AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled])
963                  if test -z "${batch_insert_db_backends}"; then
964                      batch_insert_db_backends="PostgreSQL"
965                  else
966                      batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
967                  fi
968              fi
969          fi
970
971          if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes
972          then
973              echo "WARNING: Your PostgreSQL client library is too old to detect "
974              echo "if it was compiled with --enable-thread-safety, consider to "
975              echo "upgrade it in order to avoid problems with Batch insert mode"
976          fi
977
978          dnl Revert after postgresql checks
979          LDFLAGS="${saved_LDFLAGS}"
980          LIBS="${saved_LIBS}"
981      fi
982   else
983      AC_MSG_RESULT(no)
984   fi
985 ],[
986   AC_MSG_RESULT(no)
987 ])
988 AC_SUBST(POSTGRESQL_LIBS)
989 AC_SUBST(POSTGRESQL_INCLUDE)
990 AC_SUBST(POSTGRESQL_BINDIR)
991
992 ])
993
994 AC_DEFUN([AM_CONDITIONAL],
995 [AC_SUBST($1_TRUE)
996 AC_SUBST($1_FALSE)
997 if $2; then
998   $1_TRUE=
999   $1_FALSE='#'
1000 else
1001   $1_TRUE='#'
1002   $1_FALSE=
1003 fi])