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