2 # Copyright (C) 2000-2016 Kern Sibbald
3 # License: BSD 2-Clause; see file LICENSE-FOSS
5 AC_DEFUN([BA_CHECK_DBI_DB],
7 AC_MSG_CHECKING(for DBI support)
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.]),
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
18 DBI_LIBDIR=/usr/local/lib
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
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
34 DBI_LIBDIR=$prefix/lib
36 DBI_BINDIR=$prefix/bin
39 AC_MSG_ERROR(Unable to find dbi.h in standard locations)
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
46 DRIVERDIR=/usr/local/lib/dbd
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
53 DRIVERDIR=/usr/lib/dbd
55 elif test -d $prefix/lib/dbd; then
56 if test -d $prefix/lib64/dbd; then
57 DRIVERDIR=$prefix/lib64/dbd
59 DRIVERDIR=$prefix/lib/dbd
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
69 AC_MSG_ERROR(Unable to find DBD drivers in standard locations)
72 if test -f $withval/dbi.h; then
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
81 DBI_LIBDIR=$withval/lib
83 DBI_BINDIR=$withval/bin
86 AC_MSG_ERROR(Invalid DBI directory $withval - unable to find dbi.h under $withval)
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
94 DRIVERDIR=$withval/lib/dbd
96 elif test -d $withval/lib64/dbd; then
97 DRIVERDIR=$withval/lib64/dbd
100 AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
103 DBI_INCLUDE=-I$DBI_INCDIR
104 if test x$use_libtool != xno; then
105 DBI_LIBS="-R $DBI_LIBDIR -L$DBI_LIBDIR -ldbi"
107 DBI_LIBS="-L$DBI_LIBDIR -ldbi"
109 DBI_LIB=$DBI_LIBDIR/libdbi.a
110 DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
111 DB_LIBS="${DB_LIBS} ${DBI_LIBS}"
113 AC_DEFINE(HAVE_DBI, 1, [Set if you have the DBI driver])
116 if test -z "${db_backends}"; then
119 db_backends="${db_backends} DBI"
121 if test -z "${DB_BACKENDS}" ; then
124 DB_BACKENDS="${DB_BACKENDS} dbi"
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}"
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"
142 if test $pkg = 0; then
143 AC_DEFINE(HAVE_DBI_BATCH_FILE_INSERT, 1, [Set if DBI DB batch insert code enabled])
155 AC_SUBST(DBI_INCLUDE)
157 AC_SUBST(DBI_DBD_DRIVERDIR)
161 AC_DEFUN([BA_CHECK_DBI_DRIVER],
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.]),
168 if test "$withval" != "no"; then
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
178 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
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
189 MYSQL_LIBDIR=/usr/lib
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
200 MYSQL_LIBDIR=/usr/local/lib
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/
214 MYSQL_LIBDIR=$withval/lib/mysql
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
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
230 AC_MSG_ERROR(Unable to find mysql in standard locations)
232 if test -f $SQL_LIBDIR/libmysqlclient_r.so; then
233 DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.so
235 DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.a
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
249 POSTGRESQL_LIBDIR=/usr/local/lib
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
260 POSTGRESQL_LIBDIR=/usr/lib
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
267 POSTGRESQL_LIBDIR=$withval/lib
271 AC_MSG_ERROR(Unable to find psql in standard locations)
273 if test -f $POSTGRESQL_LIBDIR/libpq.so; then
274 DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.so
276 DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.a
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
286 SQLITE_LIBDIR=/usr/local/lib
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
293 SQLITE_LIBDIR=/usr/lib
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
300 SQLITE_LIBDIR=$withval/lib
304 AC_MSG_ERROR(Unable to find sqlite in standard locations)
306 if test -f $SQLITE_LIBDIR/libsqlite3.so; then
307 DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.so
309 DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.a
314 AC_MSG_ERROR(Unable to set DBI driver. $withval is not supported)
327 AC_SUBST(MYSQL_BINDIR)
328 AC_SUBST(POSTGRESQL_BINDIR)
329 AC_SUBST(SQLITE_BINDIR)
331 AC_SUBST(DB_PROG_LIB)
336 AC_DEFUN([BA_CHECK_MYSQL_DB],
338 AC_MSG_CHECKING(for MySQL support)
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.]),
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
350 MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs_r`
351 MYSQL_INCDIR=`${MYSQL_CONFIG} --include`
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`
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
369 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
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
387 MYSQL_LIBDIR=/usr/lib
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
396 MYSQL_LIBDIR=/usr/lib
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
405 MYSQL_LIBDIR=/usr/local/lib/mysql
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
414 MYSQL_LIBDIR=/usr/local/lib
416 MYSQL_BINDIR=/usr/local/bin
419 AC_MSG_ERROR(Unable to find mysql.h in standard locations)
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
435 MYSQL_LIBDIR=$withval/lib/mysql
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
444 MYSQL_LIBDIR=$withval/lib
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
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
460 MYSQL_BINDIR=$prefix/lib/mysql55/bin
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
470 MYSQL_BINDIR=$prefix/lib/mysql51/bin
473 if test -z "${MYSQL_LIBDIR}" ; then
475 AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries)
479 AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
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"
491 batch_insert_db_backends="${batch_insert_db_backends} MySQL"
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"
498 MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
500 DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
502 if test "x${MYSQL_LIBS}" = x; then
503 MYSQL_LIBS=$MYSQL_LIBDIR/libmysqlclient_r.a
506 AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
509 if test -z "${db_backends}" ; then
512 db_backends="${db_backends} MySQL"
514 if test -z "${DB_BACKENDS}" ; then
517 DB_BACKENDS="${DB_BACKENDS} mysql"
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"
529 LIBS="${saved_LIBS} -lz"
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"
536 batch_insert_db_backends="${batch_insert_db_backends} MySQL"
540 dnl Revert after mysql checks
541 LDFLAGS="${saved_LDFLAGS}"
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.]),
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
564 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
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
572 MYSQL_LIBDIR=/usr/lib/mysql
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
580 MYSQL_LIBDIR=/usr/lib
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
588 MYSQL_LIBDIR=/usr/local/lib/mysql
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
596 MYSQL_LIBDIR=/usr/local/lib
598 MYSQL_BINDIR=/usr/local/bin
601 AC_MSG_ERROR(Unable to find mysql.h in standard locations)
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
609 MYSQL_LIBDIR=$withval/lib/mysql
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
617 MYSQL_LIBDIR=$withval/lib
619 MYSQL_BINDIR=$withval/bin
622 AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
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"
629 MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
631 MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
632 DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
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])
638 if test -z "${db_backends}"; then
641 db_backends="${db_backends} MySQL"
643 if test -z "${DB_BACKENDS}"; then
646 DB_BACKENDS="${DB_BACKENDS} mysql"
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"
657 LIBS="${saved_LIBS} -lz -lm -lcrypt"
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"
664 batch_insert_db_backends="${batch_insert_db_backends} MySQL"
668 dnl Revert after mysql checks
669 LDFLAGS="${saved_LDFLAGS}"
680 AC_SUBST(MYSQL_INCLUDE)
681 AC_SUBST(MYSQL_BINDIR)
685 AC_DEFUN([BA_CHECK_INGRES_DB],
687 AC_MSG_CHECKING(for Ingres support)
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.]),
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
703 AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
706 if test -f $withval/files/eqdefc.h; then
707 INGRES_INCDIR=$withval/files
708 INGRES_LIBDIR=$withval/lib
709 INGRES_BINDIR=$withval/bin
712 AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
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"
719 INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
721 DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
722 AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
725 if test -z "${db_backends}"; then
728 db_backends="${db_backends} Ingres"
730 if test -z "${DB_BACKENDS}"; then
733 DB_BACKENDS="${DB_BACKENDS} ingres"
742 AC_SUBST(INGRES_LIBS)
743 AC_SUBST(INGRES_INCLUDE)
744 AC_SUBST(INGRES_BINDIR)
747 AC_DEFUN([BA_CHECK_SQLITE3_DB],
749 AC_MSG_CHECKING(for SQLite3 support)
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.]),
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
760 SQLITE_LIBDIR=/usr/local/lib
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
768 SQLITE_LIBDIR=/usr/lib
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
776 SQLITE_LIBDIR=$prefix/lib
778 SQLITE_BINDIR=$prefix/bin
781 AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
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
793 SQLITE_LIBDIR=$withval/lib
795 SQLITE_BINDIR=$withval/bin
798 AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
801 SQLITE_INCLUDE=-I$SQLITE_INCDIR
802 if test x$use_libtool != xno; then
803 SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
805 SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
807 SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
808 DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
810 AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
813 if test -z "${db_backends}"; then
814 db_backends="SQLite3"
816 db_backends="${db_backends} SQLite3"
818 if test -z "${DB_BACKENDS}"; then
819 DB_BACKENDS="sqlite3"
821 DB_BACKENDS="${DB_BACKENDS} sqlite3"
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"
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"
837 batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
841 dnl Revert after sqlite checks
842 LDFLAGS="${saved_LDFLAGS}"
850 AC_SUBST(SQLITE_LIBS)
851 AC_SUBST(SQLITE_INCLUDE)
852 AC_SUBST(SQLITE_BINDIR)
857 AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
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@:>@]),
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
875 POSTGRESQL_LIBDIR=/usr/local/lib
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
883 POSTGRESQL_LIBDIR=/usr/lib
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
891 POSTGRESQL_LIBDIR=/usr/lib/pgsql
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
899 POSTGRESQL_LIBDIR=/usr/lib/postgresql
901 POSTGRESQL_BINDIR=/usr/bin
904 AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
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
915 POSTGRESQL_LIBDIR=$withval/lib
917 POSTGRESQL_BINDIR=$withval/bin
920 AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
922 AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
925 POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
926 if test x$use_libtool != xno; then
927 POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
929 POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
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}"
935 if test -z "${db_backends}"; then
936 db_backends="PostgreSQL"
938 db_backends="${db_backends} PostgreSQL"
940 if test -z "${DB_BACKENDS}"; then
941 DB_BACKENDS="postgresql"
943 DB_BACKENDS="${DB_BACKENDS} postgresql"
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"
954 if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
955 LIBS="${saved_LIBS} -lcrypt"
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"
966 batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
971 if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes
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"
978 dnl Revert after postgresql checks
979 LDFLAGS="${saved_LDFLAGS}"
988 AC_SUBST(POSTGRESQL_LIBS)
989 AC_SUBST(POSTGRESQL_INCLUDE)
990 AC_SUBST(POSTGRESQL_BINDIR)
994 AC_DEFUN([AM_CONDITIONAL],