]> git.sur5r.net Git - bacula/bacula/blob - bacula/autoconf/bacula-macros/db.m4
Tweak more copyrights
[bacula/bacula] / bacula / autoconf / bacula-macros / db.m4
1 #
2 # Author: Kern Sibbald
3 # License: LGPLv3
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   if test "$withval" != "no"; then
343         if test "$withval" = "yes"; then
344 #
345 # This code is very broken on older systems
346 #
347 #           MYSQL_CONFIG=`which mysql_config 2>/dev/null`
348 #           if test "x${MYSQL_CONFIG}" != x; then
349 #              MYSQL_BINDIR="${MYSQL_CONFIG%/*}"
350 #              ${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1
351 #              if test $? = 0 ; then
352 #                 MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir`
353 #                 MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir`
354 #              else
355 #                 MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs | sed -e 's/.*-L//' -e 's/ .*//'`
356 #                 MYSQL_INCDIR=`${MYSQL_CONFIG} --include | sed -e 's/-I//'`
357 #              fi
358 #           elif test -f /usr/local/mysql/include/mysql/mysql.h; then
359            if test -f /usr/local/mysql/include/mysql/mysql.h; then
360               MYSQL_INCDIR=/usr/local/mysql/include/mysql
361               if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
362                       -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
363                  MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
364               else
365                  MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
366               fi
367               MYSQL_BINDIR=/usr/local/mysql/bin
368            elif test -f /usr/include/mysql/mysql.h; then
369               MYSQL_INCDIR=/usr/include/mysql
370               if test -f /usr/lib64/mysql/libmysqlclient_r.a \
371                       -o -f /usr/lib64/mysql/libmysqlclient_r.so; then
372                  MYSQL_LIBDIR=/usr/lib64/mysql
373               elif test -f /usr/lib64/libmysqlclient_r.a \
374                         -o -f /usr/lib64/libmysqlclient_r.so; then
375                  MYSQL_LIBDIR=/usr/lib64
376               elif test -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.a \
377                         -o -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so; then
378                  MYSQL_LIBDIR=/usr/lib/x86_64-linux-gnu
379               elif test -f /usr/lib/mysql/libmysqlclient_r.a \
380                         -o -f /usr/lib/mysql/libmysqlclient_r.so; then
381                  MYSQL_LIBDIR=/usr/lib/mysql
382               else
383                  MYSQL_LIBDIR=/usr/lib
384               fi
385               MYSQL_BINDIR=/usr/bin
386            elif test -f /usr/include/mysql.h; then
387               MYSQL_INCDIR=/usr/include
388               if test -f /usr/lib64/libmysqlclient_r.a \
389                       -o -f /usr/lib64/libmysqlclient_r.so; then
390                  MYSQL_LIBDIR=/usr/lib64
391               else
392                  MYSQL_LIBDIR=/usr/lib
393               fi
394               MYSQL_BINDIR=/usr/bin
395            elif test -f /usr/local/include/mysql/mysql.h; then
396               MYSQL_INCDIR=/usr/local/include/mysql
397               if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
398                       -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
399                  MYSQL_LIBDIR=/usr/local/lib64/mysql
400               else
401                  MYSQL_LIBDIR=/usr/local/lib/mysql
402               fi
403               MYSQL_BINDIR=/usr/local/bin
404            elif test -f /usr/local/include/mysql.h; then
405               MYSQL_INCDIR=/usr/local/include
406               if test -f /usr/local/lib64/libmysqlclient_r.a \
407                       -o -f /usr/local/lib64/libmysqlclient_r.so; then
408                  MYSQL_LIBDIR=/usr/local/lib64
409               else
410                  MYSQL_LIBDIR=/usr/local/lib
411               fi
412               MYSQL_BINDIR=/usr/local/bin
413            else
414               AC_MSG_RESULT(no)
415               AC_MSG_ERROR(Unable to find mysql.h in standard locations)
416            fi
417         else
418            if test -f $withval/include/mysql/mysql.h; then
419               MYSQL_INCDIR=$withval/include/mysql
420               if test -f $withval/lib64/mysql/libmysqlclient_r.a \
421                    -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
422                  MYSQL_LIBDIR=$withval/lib64/mysql
423               elif test -f $withval/lib64/libmysqlclient_r.a \
424                    -o -f $withval/lib64/libmysqlclient_r.so; then
425                  MYSQL_LIBDIR=$withval/lib64
426               elif test -f $withval/lib/libmysqlclient_r.a \
427                    -o -f $withval/lib/libmysqlclient_r.so; then
428                  MYSQL_LIBDIR=$withval/lib
429               else
430                  MYSQL_LIBDIR=$withval/lib/mysql
431               fi
432               MYSQL_BINDIR=$withval/bin
433            elif test -f $withval/include/mysql.h; then
434               MYSQL_INCDIR=$withval/include
435               if test -f $withval/lib64/libmysqlclient_r.a \
436                    -o -f $withval/lib64/libmysqlclient_r.so; then
437                  MYSQL_LIBDIR=$withval/lib64
438               else
439                  MYSQL_LIBDIR=$withval/lib
440               fi
441               MYSQL_BINDIR=$withval/bin
442            elif test -f $withval/mysql.h; then
443               dnl MacPorts on OSX has a special MySQL Layout. See #2079
444               MYSQL_INCDIR=$withval
445               AC_MSG_NOTICE(Got with-mysql variable $MYSQL_INCDIR checking MySQL version)
446               case $MYSQL_INCDIR in
447                  *mysql55*)
448                      AC_MSG_NOTICE(Assuming MacPorts MySQL 5.5 variant installed)
449                      dnl with-mysql given contains mysql55 - assuming OSX MacPorts MySQL55 variant
450                      if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \
451                           -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then
452                         AC_MSG_NOTICE(Found MySQL 5.5 library in $prefix/lib/mysql55/mysql)
453                         MYSQL_LIBDIR=$prefix/lib/mysql55/mysql
454                      fi
455                      MYSQL_BINDIR=$prefix/lib/mysql55/bin
456                  ;;
457                  *mysql51*)
458                      AC_MSG_NOTICE(Assuming MacPorts MySQL 5.1 variant installed)
459                      dnl with-mysql contains mysql51 - assuming OSX MacPorts MySQL51 variant
460                      if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \
461                           -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then
462                         AC_MSG_NOTICE(Found MySQL 5.1 library in $prefix/lib/mysql55/mysql)
463                         MYSQL_LIBDIR=$prefix/lib/mysql51/mysql
464                      fi
465                      MYSQL_BINDIR=$prefix/lib/mysql51/bin
466                  ;;
467               esac
468               if test -z "${MYSQL_LIBDIR}" ; then
469                  AC_MSG_RESULT(no)
470                  AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries)
471               fi
472            else
473               AC_MSG_RESULT(no)
474               AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
475            fi
476         fi
477      MYSQL_INCLUDE=-I$MYSQL_INCDIR
478      if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
479           -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
480         if test x$use_libtool != xno; then
481            MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz"
482         else
483            MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
484         fi
485         DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
486      fi
487      MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
488
489      AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
490      AC_MSG_RESULT(yes)
491
492      if test -z "${db_backends}" ; then
493          db_backends="MySQL"
494      else
495          db_backends="${db_backends} MySQL"
496      fi
497      if test -z "${DB_BACKENDS}" ; then
498          DB_BACKENDS="mysql"
499      else
500          DB_BACKENDS="${DB_BACKENDS} mysql"
501      fi
502
503      dnl -------------------------------------------
504      dnl Check if mysql supports batch mode
505      dnl -------------------------------------------
506      if test "x$support_batch_insert" = "xyes"; then
507          dnl For mysql checking
508          saved_LDFLAGS="${LDFLAGS}"
509          LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
510          saved_LIBS="${LIBS}"
511          LIBS="${saved_LIBS} -lz"
512
513          AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
514          if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
515              if test -z "${batch_insert_db_backends}"; then
516                  batch_insert_db_backends="MySQL"
517              else
518                  batch_insert_db_backends="${batch_insert_db_backends} MySQL"
519              fi
520          fi
521
522          dnl Revert after mysql checks
523          LDFLAGS="${saved_LDFLAGS}"
524          LIBS="${saved_LIBS}"
525      fi
526   else
527      AC_MSG_RESULT(no)
528   fi
529 ],[
530   AC_MSG_RESULT(no)
531 ])
532
533 AC_MSG_CHECKING(for MySQL embedded support)
534 AC_ARG_WITH(embedded-mysql,
535 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.]),
536 [
537   if test "$withval" != "no"; then
538         if test "$withval" = "yes"; then
539                 if test -f /usr/local/mysql/include/mysql/mysql.h; then
540                         MYSQL_INCDIR=/usr/local/mysql/include/mysql
541                         if test -d /usr/local/mysql/lib64/mysql; then
542                                 MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
543                         else
544                                 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
545                         fi
546                         MYSQL_BINDIR=/usr/local/mysql/bin
547                 elif test -f /usr/include/mysql/mysql.h; then
548                         MYSQL_INCDIR=/usr/include/mysql
549                         if test -d /usr/lib64/mysql; then
550                                 MYSQL_LIBDIR=/usr/lib64/mysql
551                         else
552                                 MYSQL_LIBDIR=/usr/lib/mysql
553                         fi
554                         MYSQL_BINDIR=/usr/bin
555                 elif test -f /usr/include/mysql.h; then
556                         MYSQL_INCDIR=/usr/include
557                         if test -d /usr/lib64; then
558                                 MYSQL_LIBDIR=/usr/lib64
559                         else
560                                 MYSQL_LIBDIR=/usr/lib
561                         fi
562                         MYSQL_BINDIR=/usr/bin
563                 elif test -f /usr/local/include/mysql/mysql.h; then
564                         MYSQL_INCDIR=/usr/local/include/mysql
565                         if test -d /usr/local/lib64/mysql; then
566                                 MYSQL_LIBDIR=/usr/local/lib64/mysql
567                         else
568                                 MYSQL_LIBDIR=/usr/local/lib/mysql
569                         fi
570                         MYSQL_BINDIR=/usr/local/bin
571                 elif test -f /usr/local/include/mysql.h; then
572                         MYSQL_INCDIR=/usr/local/include
573                         if test -d /usr/local/lib64; then
574                                 MYSQL_LIBDIR=/usr/local/lib64
575                         else
576                                 MYSQL_LIBDIR=/usr/local/lib
577                         fi
578                         MYSQL_BINDIR=/usr/local/bin
579                 else
580                    AC_MSG_RESULT(no)
581                    AC_MSG_ERROR(Unable to find mysql.h in standard locations)
582                 fi
583         else
584                 if test -f $withval/include/mysql/mysql.h; then
585                         MYSQL_INCDIR=$withval/include/mysql
586                         if test -d $withval/lib64/mysql; then
587                                 MYSQL_LIBDIR=$withval/lib64/mysql
588                         else
589                                 MYSQL_LIBDIR=$withval/lib/mysql
590                         fi
591                         MYSQL_BINDIR=$withval/bin
592                 elif test -f $withval/include/mysql.h; then
593                         MYSQL_INCDIR=$withval/include
594                         if test -d $withval/lib64; then
595                                 MYSQL_LIBDIR=$withval/lib64
596                         else
597                                 MYSQL_LIBDIR=$withval/lib
598                         fi
599                         MYSQL_BINDIR=$withval/bin
600                 else
601                    AC_MSG_RESULT(no)
602                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
603                 fi
604         fi
605      MYSQL_INCLUDE=-I$MYSQL_INCDIR
606      if test x$use_libtool != xno; then
607         MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
608      else
609         MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
610      fi
611      MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
612      DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
613
614      AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
615      AC_DEFINE(HAVE_EMBEDDED_MYSQL, 1, [Set if you have an Embedded MySQL Database])
616      AC_MSG_RESULT(yes)
617
618      if test -z "${db_backends}"; then
619          db_backends="MySQL"
620      else
621          db_backends="${db_backends} MySQL"
622      fi
623      if test -z "${DB_BACKENDS}"; then
624          DB_BACKENDS="mysql"
625      else
626          DB_BACKENDS="${DB_BACKENDS} mysql"
627      fi
628
629      dnl -------------------------------------------
630      dnl Check if mysql supports batch mode
631      dnl -------------------------------------------
632      if test "x$support_batch_insert" = "xyes"; then
633          dnl For mysql checking
634          saved_LDFLAGS="${LDFLAGS}"
635          LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
636          saved_LIBS="${LIBS}"
637          LIBS="${saved_LIBS} -lz -lm -lcrypt"
638
639          AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
640          if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
641              if test -z "${batch_insert_db_backends}"; then
642                  batch_insert_db_backends="MySQL"
643              else
644                  batch_insert_db_backends="${batch_insert_db_backends} MySQL"
645              fi
646          fi
647
648          dnl Revert after mysql checks
649          LDFLAGS="${saved_LDFLAGS}"
650          LIBS="${saved_LIBS}"
651      fi
652   else
653      AC_MSG_RESULT(no)
654   fi
655 ],[
656   AC_MSG_RESULT(no)
657 ])
658
659 AC_SUBST(MYSQL_LIBS)
660 AC_SUBST(MYSQL_INCLUDE)
661 AC_SUBST(MYSQL_BINDIR)
662
663 ])
664
665 AC_DEFUN([BA_CHECK_INGRES_DB],
666 [
667 AC_MSG_CHECKING(for Ingres support)
668 AC_ARG_WITH(ingres,
669 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.]),
670 [
671   if test "$withval" != "no"; then
672      if test "$withval" = "yes"; then
673         if test -f ${II_SYSTEM}/files/eqdefc.h; then
674            INGRES_INCDIR=${II_SYSTEM}/files
675            INGRES_LIBDIR=${II_SYSTEM}/lib
676            INGRES_BINDIR=${II_SYSTEM}/bin
677         elif test -f ${II_SYSTEM}/ingres/files/eqdefc.h; then
678            INGRES_INCDIR=${II_SYSTEM}/ingres/files
679            INGRES_LIBDIR=${II_SYSTEM}/ingres/lib
680            INGRES_BINDIR=${II_SYSTEM}/ingres/bin
681         else
682            AC_MSG_RESULT(no)
683            AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
684         fi
685      else
686         if test -f $withval/files/eqdefc.h; then
687            INGRES_INCDIR=$withval/files
688            INGRES_LIBDIR=$withval/lib
689            INGRES_BINDIR=$withval/bin
690         else
691            AC_MSG_RESULT(no)
692            AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
693         fi
694      fi
695      INGRES_INCLUDE=-I$INGRES_INCDIR
696      if test x$use_libtool != xno; then
697         INGRES_LIBS="-R $INGRES_LIBDIR -L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
698      else
699         INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
700      fi
701      DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
702      AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
703      AC_MSG_RESULT(yes)
704
705      if test -z "${db_backends}"; then
706          db_backends="Ingres"
707      else
708          db_backends="${db_backends} Ingres"
709      fi
710      if test -z "${DB_BACKENDS}"; then
711          DB_BACKENDS="ingres"
712      else
713          DB_BACKENDS="${DB_BACKENDS} ingres"
714      fi
715   else
716      AC_MSG_RESULT(no)
717   fi
718 ],[
719   AC_MSG_RESULT(no)
720 ])
721
722 AC_SUBST(INGRES_LIBS)
723 AC_SUBST(INGRES_INCLUDE)
724 AC_SUBST(INGRES_BINDIR)
725 ])
726
727 AC_DEFUN([BA_CHECK_SQLITE3_DB],
728 [
729 AC_MSG_CHECKING(for SQLite3 support)
730 AC_ARG_WITH(sqlite3,
731 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.]),
732 [
733   if test "$withval" != "no"; then
734      if test "$withval" = "yes"; then
735         if test -f /usr/local/include/sqlite3.h; then
736            SQLITE_INCDIR=/usr/local/include
737            if test -d /usr/local/lib64; then
738               SQLITE_LIBDIR=/usr/local/lib64
739            else
740               SQLITE_LIBDIR=/usr/local/lib
741            fi
742            SQLITE_BINDIR=/usr/local/bin
743         elif test -f /usr/include/sqlite3.h; then
744            SQLITE_INCDIR=/usr/include
745            if test -d /usr/lib64; then
746               SQLITE_LIBDIR=/usr/lib64
747            else
748               SQLITE_LIBDIR=/usr/lib
749            fi
750            SQLITE_BINDIR=/usr/bin
751         elif test -f $prefix/include/sqlite3.h; then
752            SQLITE_INCDIR=$prefix/include
753            if test -d $prefix/lib64; then
754               SQLITE_LIBDIR=$prefix/lib64
755            else
756               SQLITE_LIBDIR=$prefix/lib
757            fi
758            SQLITE_BINDIR=$prefix/bin
759         else
760            AC_MSG_RESULT(no)
761            AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
762         fi
763      else
764         if test -f $withval/sqlite3.h; then
765            SQLITE_INCDIR=$withval
766            SQLITE_LIBDIR=$withval
767            SQLITE_BINDIR=$withval
768         elif test -f $withval/include/sqlite3.h; then
769            SQLITE_INCDIR=$withval/include
770            if test -d $withval/lib64; then
771               SQLITE_LIBDIR=$withval/lib64
772            else
773               SQLITE_LIBDIR=$withval/lib
774            fi
775            SQLITE_BINDIR=$withval/bin
776         else
777            AC_MSG_RESULT(no)
778            AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
779         fi
780      fi
781      SQLITE_INCLUDE=-I$SQLITE_INCDIR
782      if test x$use_libtool != xno; then
783         SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
784      else
785         SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
786      fi
787      SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
788      DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
789
790      AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
791      AC_MSG_RESULT(yes)
792
793      if test -z "${db_backends}"; then
794          db_backends="SQLite3"
795      else
796          db_backends="${db_backends} SQLite3"
797      fi
798      if test -z "${DB_BACKENDS}"; then
799          DB_BACKENDS="sqlite3"
800      else
801          DB_BACKENDS="${DB_BACKENDS} sqlite3"
802      fi
803
804      dnl -------------------------------------------
805      dnl Check if sqlite supports batch mode
806      dnl -------------------------------------------
807      if test "x$support_batch_insert" = "xyes"; then
808          dnl For sqlite checking
809          saved_LDFLAGS="${LDFLAGS}"
810          LDFLAGS="${saved_LDFLAGS} -L$SQLITE_LIBDIR"
811
812          AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
813          if test "x$ac_cv_lib_sqlite3_sqlite3_threadsafe" = "xyes"; then
814              if test -z "${batch_insert_db_backends}"; then
815                  batch_insert_db_backends="SQLite3"
816              else
817                  batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
818              fi
819          fi
820
821          dnl Revert after sqlite checks
822          LDFLAGS="${saved_LDFLAGS}"
823      fi
824   else
825      AC_MSG_RESULT(no)
826   fi
827 ],[
828   AC_MSG_RESULT(no)
829 ])
830 AC_SUBST(SQLITE_LIBS)
831 AC_SUBST(SQLITE_INCLUDE)
832 AC_SUBST(SQLITE_BINDIR)
833
834 ])
835
836
837 AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
838 [
839 AC_MSG_CHECKING(for PostgreSQL support)
840 AC_ARG_WITH(postgresql,
841 AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR is the PostgreSQL base install directory, @<:@default=/usr/local/pgsql@:>@]),
842 [
843   if test "$withval" != "no"; then
844       if test "$withval" = "yes"; then
845           PG_CONFIG=`which pg_config 2>/dev/null`
846           if test -n "$PG_CONFIG"; then
847               POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir`
848               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
849               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
850           elif test -f /usr/local/include/libpq-fe.h; then
851               POSTGRESQL_INCDIR=/usr/local/include
852               if test -d /usr/local/lib64; then
853                  POSTGRESQL_LIBDIR=/usr/local/lib64
854               else
855                  POSTGRESQL_LIBDIR=/usr/local/lib
856               fi
857               POSTGRESQL_BINDIR=/usr/local/bin
858           elif test -f /usr/include/libpq-fe.h; then
859               POSTGRESQL_INCDIR=/usr/include
860               if test -d /usr/lib64; then
861                  POSTGRESQL_LIBDIR=/usr/lib64
862               else
863                  POSTGRESQL_LIBDIR=/usr/lib
864               fi
865               POSTGRESQL_BINDIR=/usr/bin
866           elif test -f /usr/include/pgsql/libpq-fe.h; then
867               POSTGRESQL_INCDIR=/usr/include/pgsql
868               if test -d /usr/lib64/pgsql; then
869                  POSTGRESQL_LIBDIR=/usr/lib64/pgsql
870               else
871                  POSTGRESQL_LIBDIR=/usr/lib/pgsql
872               fi
873               POSTGRESQL_BINDIR=/usr/bin
874           elif test -f /usr/include/postgresql/libpq-fe.h; then
875               POSTGRESQL_INCDIR=/usr/include/postgresql
876               if test -d /usr/lib64/postgresql; then
877                  POSTGRESQL_LIBDIR=/usr/lib64/postgresql
878               else
879                  POSTGRESQL_LIBDIR=/usr/lib/postgresql
880               fi
881               POSTGRESQL_BINDIR=/usr/bin
882           else
883               AC_MSG_RESULT(no)
884               AC_MSG_ERROR(Unable to find libpq-fe.h in standard locations)
885           fi
886       elif test -f $withval/include/libpq-fe.h; then
887           POSTGRESQL_INCDIR=$withval/include
888           POSTGRESQL_LIBDIR=$withval/lib
889           POSTGRESQL_BINDIR=$withval/bin
890       elif test -f $withval/include/postgresql/libpq-fe.h; then
891           POSTGRESQL_INCDIR=$withval/include/postgresql
892           if test -d $withval/lib64; then
893               POSTGRESQL_LIBDIR=$withval/lib64
894           else
895               POSTGRESQL_LIBDIR=$withval/lib
896           fi
897           POSTGRESQL_BINDIR=$withval/bin
898       else
899           AC_MSG_RESULT(no)
900           AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
901       fi
902      AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
903      AC_MSG_RESULT(yes)
904
905      POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
906      if test x$use_libtool != xno; then
907         POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
908      else
909         POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
910      fi
911      AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LIBS="$POSTGRESQL_LIBS -lcrypt"]))
912      POSTGRESQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
913      DB_LIBS="${DB_LIBS} ${POSTGRESQL_LIBS}"
914
915      if test -z "${db_backends}"; then
916          db_backends="PostgreSQL"
917      else
918          db_backends="${db_backends} PostgreSQL"
919      fi
920      if test -z "${DB_BACKENDS}"; then
921          DB_BACKENDS="postgresql"
922      else
923          DB_BACKENDS="${DB_BACKENDS} postgresql"
924      fi
925
926      dnl -------------------------------------------
927      dnl Check if postgresql supports batch mode
928      dnl -------------------------------------------
929      if test "x$support_batch_insert" = "xyes"; then
930          dnl For postgresql checking
931          saved_LDFLAGS="${LDFLAGS}"
932          LDFLAGS="${saved_LDFLAGS} -L$POSTGRESQL_LIBDIR"
933          saved_LIBS="${LIBS}"
934          if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
935             LIBS="${saved_LIBS} -lcrypt"
936          fi
937
938          AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
939          AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
940          if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then
941              if test $support_batch_insert = yes ; then
942                  AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled])
943                  if test -z "${batch_insert_db_backends}"; then
944                      batch_insert_db_backends="PostgreSQL"
945                  else
946                      batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
947                  fi
948              fi
949          fi
950
951          if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes
952          then
953              echo "WARNING: Your PostgreSQL client library is too old to detect "
954              echo "if it was compiled with --enable-thread-safety, consider to "
955              echo "upgrade it in order to avoid problems with Batch insert mode"
956          fi
957
958          dnl Revert after postgresql checks
959          LDFLAGS="${saved_LDFLAGS}"
960          LIBS="${saved_LIBS}"
961      fi
962   else
963      AC_MSG_RESULT(no)
964   fi
965 ],[
966   AC_MSG_RESULT(no)
967 ])
968 AC_SUBST(POSTGRESQL_LIBS)
969 AC_SUBST(POSTGRESQL_INCLUDE)
970 AC_SUBST(POSTGRESQL_BINDIR)
971
972 ])
973
974 AC_DEFUN([AM_CONDITIONAL],
975 [AC_SUBST($1_TRUE)
976 AC_SUBST($1_FALSE)
977 if $2; then
978   $1_TRUE=
979   $1_FALSE='#'
980 else
981   $1_TRUE='#'
982   $1_FALSE=
983 fi])